{"id":812537,"url":"http://patchwork.ozlabs.org/api/patches/812537/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170911174933.20789-6-david@redhat.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170911174933.20789-6-david@redhat.com>","list_archive_url":null,"date":"2017-09-11T17:49:32","name":"[v1,5/6] kvm: kvm_log_start/stop are only called with known sections","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"d03fba89904dc0e0f751ad90febbd709d912da04","submitter":{"id":70402,"url":"http://patchwork.ozlabs.org/api/people/70402/?format=json","name":"David Hildenbrand","email":"david@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170911174933.20789-6-david@redhat.com/mbox/","series":[{"id":2539,"url":"http://patchwork.ozlabs.org/api/series/2539/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=2539","date":"2017-09-11T17:49:27","name":"QEMU: kvm: cleanup kvm_slot handling","version":1,"mbox":"http://patchwork.ozlabs.org/series/2539/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/812537/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/812537/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=david@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xrbZ603T3z9s7F\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 12 Sep 2017 04:10:22 +1000 (AEST)","from localhost ([::1]:59632 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1drTA3-0002Bn-F4\n\tfor incoming@patchwork.ozlabs.org; Mon, 11 Sep 2017 14:10:19 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:49183)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <david@redhat.com>) id 1drSqD-0000pq-E2\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:49:54 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <david@redhat.com>) id 1drSqC-0008Hq-NS\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:49:49 -0400","from mx1.redhat.com ([209.132.183.28]:33140)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <david@redhat.com>) id 1drSqC-0008FI-Gs\n\tfor qemu-devel@nongnu.org; Mon, 11 Sep 2017 13:49:48 -0400","from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 82C9BB9F3C;\n\tMon, 11 Sep 2017 17:49:47 +0000 (UTC)","from t460s.redhat.com (ovpn-116-74.ams2.redhat.com [10.36.116.74])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 0EDEA6442B;\n\tMon, 11 Sep 2017 17:49:45 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 82C9BB9F3C","From":"David Hildenbrand <david@redhat.com>","To":"qemu-devel@nongnu.org","Date":"Mon, 11 Sep 2017 19:49:32 +0200","Message-Id":"<20170911174933.20789-6-david@redhat.com>","In-Reply-To":"<20170911174933.20789-1-david@redhat.com>","References":"<20170911174933.20789-1-david@redhat.com>","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.11","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tMon, 11 Sep 2017 17:49:47 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"[Qemu-devel] [PATCH v1 5/6] kvm: kvm_log_start/stop are only called\n\twith known sections","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Paolo Bonzini <pbonzini@redhat.com>, david@redhat.com,\n\tkvm@vger.kernel.org, =?utf-8?b?UmFkaW0gS3LEjW3DocWZ?=\n\t<rkrcmar@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"Let's properly align the sections first and bail out if we would ever\nget called with a memory section we don't know yet.\n\nSigned-off-by: David Hildenbrand <david@redhat.com>\n---\n accel/kvm/kvm-all.c | 18 ++++++++++++------\n 1 file changed, 12 insertions(+), 6 deletions(-)","diff":"diff --git a/accel/kvm/kvm-all.c b/accel/kvm/kvm-all.c\nindex b677d1b13e..2ae459453d 100644\n--- a/accel/kvm/kvm-all.c\n+++ b/accel/kvm/kvm-all.c\n@@ -411,15 +411,21 @@ static int kvm_slot_update_flags(KVMMemoryListener *kml, KVMSlot *mem,\n static int kvm_section_update_flags(KVMMemoryListener *kml,\n                                     MemoryRegionSection *section)\n {\n-    hwaddr phys_addr = section->offset_within_address_space;\n-    ram_addr_t size = int128_get64(section->size);\n-    KVMSlot *mem = kvm_lookup_matching_slot(kml, phys_addr, size);\n+    hwaddr start_addr, size;\n+    KVMSlot *mem;\n \n-    if (mem == NULL)  {\n+    size = kvm_align_section(section, &start_addr);\n+    if (!size) {\n         return 0;\n-    } else {\n-        return kvm_slot_update_flags(kml, mem, section->mr);\n     }\n+\n+    mem = kvm_lookup_matching_slot(kml, start_addr, size);\n+    if (!mem) {\n+        fprintf(stderr, \"%s: error finding slot\\n\", __func__);\n+        abort();\n+    }\n+\n+    return kvm_slot_update_flags(kml, mem, section->mr);\n }\n \n static void kvm_log_start(MemoryListener *listener,\n","prefixes":["v1","5/6"]}