From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261368719403.03309922263077; Mon, 26 Nov 2018 11:42:48 -0800 (PST) Received: from localhost ([::1]:38440 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMmI-0000i1-VP for importer@patchew.org; Mon, 26 Nov 2018 14:42:43 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45123) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkN-000816-81 for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkL-0004DM-Az for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:43 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]:33492) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkL-0004D6-5T for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:41 -0500 Received: by mail-wm1-x342.google.com with SMTP id 79so17316773wmo.0 for ; Mon, 26 Nov 2018 11:40:41 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=OJEMfS+oCLp6yUpHNPlhcOgcYGFdPt/lj3ovE/kcFCs=; b=W/ZwOIw6YQYyYJzSQ5f+Z08hluHd4Qv0lihXbL1TME5JwoZmr2WDOjkApPsYvsoAJD u5C7Xw39uojuiTylZsKZZ5FpwkWJwAzXYxzUi6K/7siZsuvWeguhdM1jZMw772KMZSp6 djsamWxy1AnN0p/OYfee09/UyGBitLE/XHpQm7g+wL6EvlAUuu9OCDjnPLo9J4aUYCDt 6Lwhza508Y+mvaS662orG/U9qe4nbippWdPDxPNBF3WZ780Erhh13Jh7Q+UJy1yjCE83 955yDj/I6OkwJZR9ZFQrb4FY9Ad6BGw7Qju7AQGhUfYaSLh4goNBcBFZA4BGQCuYng6q 20Hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=OJEMfS+oCLp6yUpHNPlhcOgcYGFdPt/lj3ovE/kcFCs=; b=t8m7iZjijQg1oXmN03hdy5CEzmJcha1bXWYbm8Jz05vvvI6gA+ocA6UT4NrM1z3lcZ b8NNheBKUU83xpTh38UqY+M0MHStJsUMadP3n+LSKshzaXZ2gVZJQ9qDlswhmHNN22P4 Qg32/hvsh4LHeI/AC/n3wSueS2Kp2VwyqBBndt50I7YGnkQTfAW/Ft1OQL8cg+2Qrnq6 5BanemBaeXdJhcQtR23rkqQQix4RyVqqvFmfg9khLec27QuqM4jhoi+CrsVt9dX4LhBD UrvupLf+HBQnU/Vl976Groi06A+NBThaOJdIFA1KPBiscJZAITJIX/WSKOSqR+Yn+iYF TPDQ== X-Gm-Message-State: AGRZ1gK1w4oP67ZkZf4h3YQYsL/dXMmZ/TFDkCW8J/nt1syPJoH/Sj/d TRFGF9Ji7xFyk9RleTSKeFtN1wE5 X-Google-Smtp-Source: AJdET5eSzM0nn1VlkKqtqFx/t0CxTlUKjm/GsgcMHRk6HG8vroKlU5zzOdu87+JevR21mhhWtcFumA== X-Received: by 2002:a1c:4406:: with SMTP id r6mr25240537wma.151.1543261238886; Mon, 26 Nov 2018 11:40:38 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:21 +0100 Message-Id: <1543261235-2834-2-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::342 Subject: [Qemu-devel] [PULL 01/15] target/i386: kvm: add VMX migration blocker X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Nested VMX does not support live migration yet. Add a blocker until that is worked out. Nested SVM only does not support it, but unfortunately it is enabled by default for -cpu host so we cannot really disable it. Signed-off-by: Paolo Bonzini --- target/i386/kvm.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/target/i386/kvm.c b/target/i386/kvm.c index f524e7d..27dcca5 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -854,6 +854,7 @@ static int hyperv_init_vcpu(X86CPU *cpu) } =20 static Error *invtsc_mig_blocker; +static Error *vmx_mig_blocker; =20 #define KVM_MAX_CPUID_ENTRIES 100 =20 @@ -1246,6 +1247,17 @@ int kvm_arch_init_vcpu(CPUState *cs) !!(c->ecx & CPUID_EXT_SMX); } =20 + if ((env->features[FEAT_1_ECX] & CPUID_EXT_VMX) && !vmx_mig_blocker) { + error_setg(&vmx_mig_blocker, + "Nested VMX virtualization does not support live migrat= ion yet"); + r =3D migrate_add_blocker(vmx_mig_blocker, &local_err); + if (local_err) { + error_report_err(local_err); + error_free(vmx_mig_blocker); + return r; + } + } + if (env->mcg_cap & MCG_LMCE_P) { has_msr_mcg_ext_ctl =3D has_msr_feature_control =3D true; } --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261365960394.77265028770864; Mon, 26 Nov 2018 11:42:45 -0800 (PST) Received: from localhost ([::1]:38439 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMmE-0000fS-5i for importer@patchew.org; Mon, 26 Nov 2018 14:42:38 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45126) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkN-000818-8O for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkL-0004FD-K1 for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:43 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:45941) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkL-0004DB-DS for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:41 -0500 Received: by mail-wr1-x42a.google.com with SMTP id v6so20216851wrr.12 for ; Mon, 26 Nov 2018 11:40:41 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.38 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=lTUDU3hDqZC0diMBxV7Afo1Jwu0U8lVdulWZCPgxIAk=; b=K/iFkrCCLNrMXvswuh2GQdKPrgY4WJqfq1O/PtF1jomHW4XXXjPoy1cPZsp45Q5ek8 e8iL/Cnc2exBmCXCSiqRlS57RzPayrJlyYKoU5DlaFzc5b9Mq//liFVMbnubh26uiHtO jRXpThq7N3O/MrLa7tSq2vcYvbpm5C81iIVIbl7Vpo5kxO4OEYB1yPaQ71jTZBh0++6d 4pqi/fKRu0mBKGfnUL4Yln5dt4nKBZ/uN7ppmbJ5KkrA8oLgctAFOJujL3LoI/mMTZee +mmiid6iA1Ft8cdtP3I/sI65V5pxFU7CYMnZGcfncnpXXttH4siyYcuXxrM4RFhRimoi rOKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=lTUDU3hDqZC0diMBxV7Afo1Jwu0U8lVdulWZCPgxIAk=; b=NhAFAlURfwNLmrM5ieF+3GUWazFT5ywWvGgBGZNLBqBSVRD5FL8FghsKqiNH/Po5ID LOzHSFXnd6lnoJvDbgB+tQ6pcZ+vAIhDW8mpbClALRW4YNMW64val04FHyqhYZGQQQUX OW0IVQjcLyRvMLcboHFpq6qOmdmUpFmDWJvtyqXrmM5W3mwjBCzxYZdBUWNFZJ7ohDEM QFhVBHgU2+5a2R5fL51IRcMA4bw5WgiGWkzZZdwQnU7VT/1suRmhd5mVhvGDC/07fHSN fBe8NgFSHTcKmlj8H4Xk2NzpV0CooRbz9gNGAyfNbq1l13QgXgr10XBNsVv7++0UcMem 6ZRA== X-Gm-Message-State: AA+aEWbE/6asBbPyuQey48s+ema3CmWa4t4Ts9Kigkl6irVuLnE1fZ43 lCzcjGBVKjesMyxpE9aY0TlXjWiJ X-Google-Smtp-Source: AFSGD/XuxxArElc5IkgAEEw1P+rUHqXvuDuJuF+OWwQLp7Y+0DzGZqEWEnCJfQ2EaOLFu2HqV+9xGQ== X-Received: by 2002:adf:a357:: with SMTP id d23mr25851615wrb.195.1543261239926; Mon, 26 Nov 2018 11:40:39 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:22 +0100 Message-Id: <1543261235-2834-3-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42a Subject: [Qemu-devel] [PULL 02/15] cpus: run work items for all vCPUs if single-threaded X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" This avoids the following I/O thread deadlock: 1) the I/O thread calls run_on_cpu for CPU 3 from a timer. single_tcg_halt= _cond is signaled 2) CPU 1 is running and exits. It finds no work item and enters CPU 2 3) because the I/O thread is stuck in run_on_cpu, the round-robin kick timer never triggers, and CPU 3 never runs the work item 4) run_on_cpu never completes Reviewed-by: Emilio G. Cota Signed-off-by: Paolo Bonzini --- cpus.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/cpus.c b/cpus.c index a2b33cc..0ddeeef 100644 --- a/cpus.c +++ b/cpus.c @@ -1220,16 +1220,20 @@ static void qemu_wait_io_event_common(CPUState *cpu) process_queued_cpu_work(cpu); } =20 -static void qemu_tcg_rr_wait_io_event(CPUState *cpu) +static void qemu_tcg_rr_wait_io_event(void) { + CPUState *cpu; + while (all_cpu_threads_idle()) { stop_tcg_kick_timer(); - qemu_cond_wait(cpu->halt_cond, &qemu_global_mutex); + qemu_cond_wait(first_cpu->halt_cond, &qemu_global_mutex); } =20 start_tcg_kick_timer(); =20 - qemu_wait_io_event_common(cpu); + CPU_FOREACH(cpu) { + qemu_wait_io_event_common(cpu); + } } =20 static void qemu_wait_io_event(CPUState *cpu) @@ -1562,7 +1566,7 @@ static void *qemu_tcg_rr_cpu_thread_fn(void *arg) qemu_notify_event(); } =20 - qemu_tcg_rr_wait_io_event(cpu ? cpu : first_cpu); + qemu_tcg_rr_wait_io_event(); deal_with_unplugged_cpus(); } =20 --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261550147593.4571952162172; Mon, 26 Nov 2018 11:45:50 -0800 (PST) Received: from localhost ([::1]:38454 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMp7-0003yv-5q for importer@patchew.org; Mon, 26 Nov 2018 14:45:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45145) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkN-00081D-Uh for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkN-0004IE-31 for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:43 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:39727) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkM-0004Hv-TT for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:43 -0500 Received: by mail-wr1-x42e.google.com with SMTP id t27so12265244wra.6 for ; Mon, 26 Nov 2018 11:40:42 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=g9DQblS5alv7eceXBvQoMJeu4n6ray3NZcYJEG924tg=; b=Fme5xRAMwfFTfZ4H9xj1qFZK90hEWRvrFGQhrh8qGMSlBXE8e1HDdVrsEsNm94vb0X BDGXvSxmt2TPQlr8iCRhWAE4k+RLg0W4fUKNWja6wp0Vh+q6GoFREm/PuombGLonFfzy Xad0ePdv0vsmn6LjrtjkUFLI6ZSZXETdByV2EOK+Mmk+z8p5TF/yWl6o2b84x6iUxvGg qxf3KFQTiB5rXKQRChKhqJ5JHJyu+q9EfaNWpMd7AqrWfTF+/k098Xv1f7j0o8SHZ++U AXZxNxkiU13QUv2IFjQ5KIV3/lOtd/Kt4y9HgKTtOw2vPRRwPakwvD2TMK+4QI7GK6bA y1oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=g9DQblS5alv7eceXBvQoMJeu4n6ray3NZcYJEG924tg=; b=K4GGwmAEBlbOR7ungW8/ph+SN77RkGEio5iK4v153kmNPOziCftfmokUVG2TU1rUIB 1wOQkxDEVFAKKzSCta4NNQ2TNUaMEoIu/6mstwz/zTLIQsxFH5KgXJ5aBY2XhjATUkUB HwAfGygUUdYTwAiH2pugbZo9bPvKAROgwra4oWEiQFWCw41Y1R1YntqoY1MYyYzLZNik 8auHdGkKh47MtTa5bH2m29dGl8jXvmwjGzwRMAi117SVBErpziTp4/Z/7KpFIthQLgz2 BzOGWI2EHEp4UWrjPwsoGjSz38Z3t94DuPHtrGDY2k4RjmilJOzTxj9BgMhWNToeQOLi FpaA== X-Gm-Message-State: AA+aEWZl16P6n1S4lqu8wfwAEmdmBbzwMbbH5+I/mjC3PL4X2nvBaT1Y WzzVKZmH188K1WAX9H+Pe2nDQFOZ X-Google-Smtp-Source: AFSGD/UiQMxRbzoRbmqULGDGiCYj0MEWByx13Q77n/mcWf8wWbTNJvkIQQo0bdeqM4pc1L3fPhS9lQ== X-Received: by 2002:a05:6000:104b:: with SMTP id c11mr25418341wrx.303.1543261241312; Mon, 26 Nov 2018 11:40:41 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:23 +0100 Message-Id: <1543261235-2834-4-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42e Subject: [Qemu-devel] [PULL 03/15] lsi: Reselection needed to remove pending commands from queue X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: George Kennedy Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: George Kennedy Under heavy IO (e.g. fio) the queue is not checked frequently enough for pending commands. As a result some pending commands are timed out by the linux sym53c8xx driver, which sends SCSI Abort messages for the timed out commands. The SCSI Abort messages result in linux errors, which show up on the console and in /var/log/messages. e.g. sd 0:0:3:0: [sdd] tag#33 ABORT operation started scsi target0:0:3: control msgout: 80 20 47 d sd 0:0:3:0: ABORT operation complete. scsi target0:0:4: message d sent on bad reselection Now following a WAIT DISCONNECT Script instruction, and if there is no current command, check for a pending command on the queue and if one exists call lsi_reselect(). Signed-off-by: George Kennedy Message-Id: <1541776692-12271-1-git-send-email-george.kennedy@oracle.com> [For safety, add a s->current check in lsi_update_irq - Paolo] Signed-off-by: Paolo Bonzini --- hw/scsi/lsi53c895a.c | 48 ++++++++++++++++++++++++++++++++++++------------ 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/hw/scsi/lsi53c895a.c b/hw/scsi/lsi53c895a.c index 3f207f6..52a3893 100644 --- a/hw/scsi/lsi53c895a.c +++ b/hw/scsi/lsi53c895a.c @@ -298,6 +298,18 @@ static inline int lsi_irq_on_rsl(LSIState *s) return (s->sien0 & LSI_SIST0_RSL) && (s->scid & LSI_SCID_RRE); } =20 +static lsi_request *get_pending_req(LSIState *s) +{ + lsi_request *p; + + QTAILQ_FOREACH(p, &s->queue, next) { + if (p->pending) { + return p; + } + } + return NULL; +} + static void lsi_soft_reset(LSIState *s) { trace_lsi_reset(); @@ -446,7 +458,6 @@ static void lsi_update_irq(LSIState *s) { int level; static int last_level; - lsi_request *p; =20 /* It's unclear whether the DIP/SIP bits should be cleared when the Interrupt Status Registers are cleared or when istat0 is read. @@ -476,13 +487,13 @@ static void lsi_update_irq(LSIState *s) } lsi_set_irq(s, level); =20 - if (!level && lsi_irq_on_rsl(s) && !(s->scntl1 & LSI_SCNTL1_CON)) { + if (!s->current && !level && lsi_irq_on_rsl(s) && !(s->scntl1 & LSI_SC= NTL1_CON)) { + lsi_request *p; + trace_lsi_update_irq_disconnected(); - QTAILQ_FOREACH(p, &s->queue, next) { - if (p->pending) { - lsi_reselect(s, p); - break; - } + p =3D get_pending_req(s); + if (p) { + lsi_reselect(s, p); } } } @@ -1065,11 +1076,12 @@ static void lsi_wait_reselect(LSIState *s) =20 trace_lsi_wait_reselect(); =20 - QTAILQ_FOREACH(p, &s->queue, next) { - if (p->pending) { - lsi_reselect(s, p); - break; - } + if (s->current) { + return; + } + p =3D get_pending_req(s); + if (p) { + lsi_reselect(s, p); } if (s->current =3D=3D NULL) { s->waiting =3D 1; @@ -1259,6 +1271,18 @@ again: case 1: /* Disconnect */ trace_lsi_execute_script_io_disconnect(); s->scntl1 &=3D ~LSI_SCNTL1_CON; + /* FIXME: this is not entirely correct; the target need no= t ask + * for reselection until it has to send data, while here w= e force a + * reselection as soon as the bus is free. The correct fl= ow would + * reselect before lsi_transfer_data and disconnect as soo= n as + * DMA ends. + */ + if (!s->current) { + lsi_request *p =3D get_pending_req(s); + if (p) { + lsi_reselect(s, p); + } + } break; case 2: /* Wait Reselect */ if (!lsi_irq_on_rsl(s)) { --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 154326173598752.06561712204177; Mon, 26 Nov 2018 11:48:55 -0800 (PST) Received: from localhost ([::1]:38470 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMsI-0007FW-0V for importer@patchew.org; Mon, 26 Nov 2018 14:48:54 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45170) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkP-00081Q-4K for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkO-0004Ng-Ba for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:45 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:38096) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkO-0004IV-5m for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:44 -0500 Received: by mail-wr1-x42a.google.com with SMTP id v13so16769491wrw.5 for ; Mon, 26 Nov 2018 11:40:44 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.41 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references; bh=mU0MKeFfb9e33fss5OcOobQzFrwrdtuT48mCJn41SXU=; b=L9lWZN24cnxfZ7tSpfnvzq3QyMTSXzobaMlw0ZmECK0GMU7FXtW9v5btwQl2bQwewp qb30KIzG7UBCmvtHZCBke8VmxEmJfKhkIcY0VWZx0yuQSEJWIaIRRiFfzSi6X2Z4ovUO 7O7vbgfSEeRCoJd4eOU9KfT9lFKB7ngLSQRiwuT39nsWliW9qBUf7wuqWLtBgPLJaNUH Lt2kmW2pLy85jsQOFH4YmKlHikQQJ437ULBrOCeL6gAE9UDunqLOOJi/MStiYI1iY1FA GOjExDkVi9VDeo6612x+VCC3WreWVHf4dV3wLEKXrztH4q5rnDjnipdZVOtj3zAlGdIp 5/JQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references; bh=mU0MKeFfb9e33fss5OcOobQzFrwrdtuT48mCJn41SXU=; b=a9BGtTe3QrgZOjJyXMY9197bdf8JsuLrkmp8divVDDjMBihd+jx2JcSgwdRPodHhm+ 5GFie52ixqCVJq/4ILofmnd6RxtVf70I4w3hac/nVpqI+kUN7Zgbz+QZW/YakWNKGBCX STKQe6R3anYoCtyXiIEp2bRgt9oOEg4zzBZTp5qREaT+vtLARd1ETp9IrDLrMJy2scFA Un79gKcbVzP9FMHmTm18Qg+ClV/NDW7/HYSptd2WZc9bppQe6BnSg/7SXqWlZxXyYUKz bKBAlBlTeR561057t3I+DjQIdcofttMSCexCEJZ3z7DtaMvYqXWalGFKj29IR4uchtMU 3IlA== X-Gm-Message-State: AA+aEWYf80vwEkgnz/wiB8l4ht2PdeYi1hpZzQf7lujkIvzlJq7RqIuw 8fnLXc1f+k5Yle+1ggs4mSK9yqkM X-Google-Smtp-Source: AFSGD/X2K5yI5fjSo8WUj4hZRphhTgwCZn+2sHBOSHpazBSEcnmG+3kIiaJlccsLU3MvtVdiU8AdLw== X-Received: by 2002:adf:f785:: with SMTP id q5mr26395006wrp.9.1543261242714; Mon, 26 Nov 2018 11:40:42 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:24 +0100 Message-Id: <1543261235-2834-5-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42a Subject: [Qemu-devel] [PULL 04/15] migration: savevm: consult migration blockers X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" There is really no difference between live migration and savevm, except that savevm does not require bdrv_invalidate_cache to be implemented by all disks. However, it is unlikely that savevm is used with anything except qcow2 disks, so the penalty is small and worth the improvement in catching bad usage of savevm. Only one place was taking care of savevm when adding a migration blocker, and it can be removed. Signed-off-by: Paolo Bonzini --- migration/savevm.c | 4 ++++ target/i386/kvm.c | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/migration/savevm.c b/migration/savevm.c index ef707b8..1c49776 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2455,6 +2455,10 @@ int save_snapshot(const char *name, Error **errp) struct tm tm; AioContext *aio_context; =20 + if (migration_is_blocked(errp)) { + return false; + } + if (!replay_can_snapshot()) { error_setg(errp, "Record/replay does not allow making snapshot " "right now. Try once more later."); diff --git a/target/i386/kvm.c b/target/i386/kvm.c index 27dcca5..77e44b6 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -1265,7 +1265,6 @@ int kvm_arch_init_vcpu(CPUState *cs) if (!env->user_tsc_khz) { if ((env->features[FEAT_8000_0007_EDX] & CPUID_APM_INVTSC) && invtsc_mig_blocker =3D=3D NULL) { - /* for migration */ error_setg(&invtsc_mig_blocker, "State blocked by non-migratable CPU device" " (invtsc flag)"); @@ -1275,8 +1274,6 @@ int kvm_arch_init_vcpu(CPUState *cs) error_free(invtsc_mig_blocker); return r; } - /* for savevm */ - vmstate_x86_cpu.unmigratable =3D 1; } } =20 --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261572817435.0528312022317; Mon, 26 Nov 2018 11:46:12 -0800 (PST) Received: from localhost ([::1]:38460 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMpe-0004KS-AP for importer@patchew.org; Mon, 26 Nov 2018 14:46:10 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45426) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkW-000884-FI for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkR-0004cT-2k for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:52 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:54155) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkQ-0004Wx-Jy for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:47 -0500 Received: by mail-wm1-x32e.google.com with SMTP id y1so16212843wmi.3 for ; Mon, 26 Nov 2018 11:40:46 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=d3bY/fG4iw6mibOIBhuby5pG0+eDSAsDcKXofFaxTMs=; b=Lh00+2UmoL2MNywZO3mcoDCHyuPjux/ojvXQGoJg+Syee62RYTt/1IVzGpWJr5scLN gYeoHtIxHef2XrTBnrBI/yclieZ54iRNrANDRjbP+4OL5Rw7kxJw5F0ZRk3XCaldL+Al J734gb8mXQKXzZYMfh2J3KuPrqHtXo3JoU2/3jAR7PvBFu92y80LJt6F7Ze+WZlaI72w q7RknvVLUuRpRBH9XYYRN1kjRRYE5Eb3+LsiX6Ud+jbkhRWSz6HVqsmUavTC5HwreMqE 5NgzDGr/Ej4qQ4HMVKDAEimB6K8HMetkoB9+jk0LAJzI8E+USghYkLRK/Bs3RhrP8cGo 8FXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=d3bY/fG4iw6mibOIBhuby5pG0+eDSAsDcKXofFaxTMs=; b=BbkPB1Nk5fCBWjJtyYpxlYNKHyXzaikXUitF4XoE45b62Dg+dn7fBEYJnFThsiOjt2 s4zuEM4QtFejK9JMM60o154VeLh4xfW0OiGL9ioluZa+qFgg+/FJ8UCG/Gvr5wC/wxLy VUupKDBbtkMWvfAsRBFwC/1OJISfCfHZcrBN4DEXEgxxomvO4k4K7ACHj0nOGbxRNw6C QL3hl4Go1UuWc/sq5paCTNaDG9l9ayOk95FmDmTEJN8enYgXffmBiRrdJXYBh9Z5UKa6 8jVWVFDaYPQ3CKTYX2Xkwj31qcqiLit2jovOfZn2UhIvrqlgL0JCOud4XNbOOzgaJ+ys Vx+w== X-Gm-Message-State: AA+aEWZ7q3/i+LUGv9BdQcJf3vrOmGHFASfXQ0aDXr2O1wBVfQNVLwcP CuNkKMBj1OXwZNHPv46a58OBAcMD X-Google-Smtp-Source: AJdET5ebUDbe3GO2LxT0a+H5Qvn3LN3Vp4oCvleSuWZD3E4C7s1OQkZXgKtXxmi8CXFHFG1GtFCLUQ== X-Received: by 2002:a1c:1dce:: with SMTP id d197mr26179633wmd.66.1543261244290; Mon, 26 Nov 2018 11:40:44 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:25 +0100 Message-Id: <1543261235-2834-6-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32e Subject: [Qemu-devel] [PULL 05/15] vmstate: constify VMStateField X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Marc-Andr=C3=A9 Lureau Because they are supposed to remain const. Signed-off-by: Marc-Andr=C3=83=C2=A9 Lureau Message-Id: <20181114132931.22624-1-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini Signed-off-by: Marc-Andr=C3=A9 Lureau --- hw/display/virtio-gpu.c | 4 +- hw/intc/s390_flic_kvm.c | 4 +- hw/nvram/eeprom93xx.c | 6 +-- hw/nvram/fw_cfg.c | 6 +-- hw/pci/msix.c | 4 +- hw/pci/pci.c | 8 +-- hw/pci/shpc.c | 7 +-- hw/scsi/scsi-bus.c | 4 +- hw/timer/twl92230.c | 4 +- hw/usb/redirect.c | 12 ++--- hw/virtio/virtio.c | 8 +-- include/migration/vmstate.h | 6 +-- migration/savevm.c | 7 +-- migration/vmstate-types.c | 119 ++++++++++++++++++++++++----------------= ---- migration/vmstate.c | 31 ++++++------ target/alpha/machine.c | 5 +- target/arm/machine.c | 12 ++--- target/hppa/machine.c | 10 ++-- target/mips/machine.c | 14 +++--- target/openrisc/machine.c | 5 +- target/ppc/machine.c | 14 +++--- target/sparc/machine.c | 7 +-- 22 files changed, 162 insertions(+), 135 deletions(-) diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c index 7be3a9d..c6fab56 100644 --- a/hw/display/virtio-gpu.c +++ b/hw/display/virtio-gpu.c @@ -1073,7 +1073,7 @@ static const VMStateDescription vmstate_virtio_gpu_sc= anouts =3D { }; =20 static int virtio_gpu_save(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { VirtIOGPU *g =3D opaque; struct virtio_gpu_simple_resource *res; @@ -1101,7 +1101,7 @@ static int virtio_gpu_save(QEMUFile *f, void *opaque,= size_t size, } =20 static int virtio_gpu_load(QEMUFile *f, void *opaque, size_t size, - VMStateField *field) + const VMStateField *field) { VirtIOGPU *g =3D opaque; struct virtio_gpu_simple_resource *res; diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index 3f804ad..a03df37 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -376,7 +376,7 @@ static void kvm_s390_release_adapter_routes(S390FLICSta= te *fs, * reached */ static int kvm_flic_save(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { KVMS390FLICState *flic =3D opaque; int len =3D FLIC_SAVE_INITIAL_SIZE; @@ -426,7 +426,7 @@ static int kvm_flic_save(QEMUFile *f, void *opaque, siz= e_t size, * in QEMUFile */ static int kvm_flic_load(QEMUFile *f, void *opaque, size_t size, - VMStateField *field) + const VMStateField *field) { uint64_t len =3D 0; uint64_t count =3D 0; diff --git a/hw/nvram/eeprom93xx.c b/hw/nvram/eeprom93xx.c index 2fd0e3c..2db3d7c 100644 --- a/hw/nvram/eeprom93xx.c +++ b/hw/nvram/eeprom93xx.c @@ -95,15 +95,15 @@ struct _eeprom_t { */ =20 static int get_uint16_from_uint8(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint16_t *v =3D pv; *v =3D qemu_get_ubyte(f); return 0; } =20 -static int put_unused(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, - QJSON *vmdesc) +static int put_unused(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { fprintf(stderr, "uint16_from_uint8 is used only for backwards compatib= ility.\n"); fprintf(stderr, "Never should be used to write a new state.\n"); diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c index 946f765..3cb726f 100644 --- a/hw/nvram/fw_cfg.c +++ b/hw/nvram/fw_cfg.c @@ -520,15 +520,15 @@ static void fw_cfg_reset(DeviceState *d) */ =20 static int get_uint32_as_uint16(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint32_t *v =3D pv; *v =3D qemu_get_be16(f); return 0; } =20 -static int put_unused(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, - QJSON *vmdesc) +static int put_unused(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { fprintf(stderr, "uint32_as_uint16 is only used for backward compatibil= ity.\n"); fprintf(stderr, "This functions shouldn't be called.\n"); diff --git a/hw/pci/msix.c b/hw/pci/msix.c index c944c02..702dac4 100644 --- a/hw/pci/msix.c +++ b/hw/pci/msix.c @@ -625,7 +625,7 @@ void msix_unset_vector_notifiers(PCIDevice *dev) } =20 static int put_msix_state(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { msix_save(pv, f); =20 @@ -633,7 +633,7 @@ static int put_msix_state(QEMUFile *f, void *pv, size_t= size, } =20 static int get_msix_state(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { msix_load(pv, f); return 0; diff --git a/hw/pci/pci.c b/hw/pci/pci.c index b937f0d..56b13b3 100644 --- a/hw/pci/pci.c +++ b/hw/pci/pci.c @@ -450,7 +450,7 @@ int pci_bus_numa_node(PCIBus *bus) } =20 static int get_pci_config_device(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { PCIDevice *s =3D container_of(pv, PCIDevice, config); PCIDeviceClass *pc =3D PCI_DEVICE_GET_CLASS(s); @@ -490,7 +490,7 @@ static int get_pci_config_device(QEMUFile *f, void *pv,= size_t size, =20 /* just put buffer */ static int put_pci_config_device(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { const uint8_t **v =3D pv; assert(size =3D=3D pci_config_size(container_of(pv, PCIDevice, config)= )); @@ -506,7 +506,7 @@ static VMStateInfo vmstate_info_pci_config =3D { }; =20 static int get_pci_irq_state(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { PCIDevice *s =3D container_of(pv, PCIDevice, irq_state); uint32_t irq_state[PCI_NUM_PINS]; @@ -528,7 +528,7 @@ static int get_pci_irq_state(QEMUFile *f, void *pv, siz= e_t size, } =20 static int put_pci_irq_state(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { int i; PCIDevice *s =3D container_of(pv, PCIDevice, irq_state); diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c index a8462d4..96a43d2 100644 --- a/hw/pci/shpc.c +++ b/hw/pci/shpc.c @@ -688,8 +688,8 @@ void shpc_cap_write_config(PCIDevice *d, uint32_t addr,= uint32_t val, int l) shpc_cap_update_dword(d); } =20 -static int shpc_save(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld, - QJSON *vmdesc) +static int shpc_save(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { PCIDevice *d =3D container_of(pv, PCIDevice, shpc); qemu_put_buffer(f, d->shpc->config, SHPC_SIZEOF(d)); @@ -697,7 +697,8 @@ static int shpc_save(QEMUFile *f, void *pv, size_t size= , VMStateField *field, return 0; } =20 -static int shpc_load(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld) +static int shpc_load(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { PCIDevice *d =3D container_of(pv, PCIDevice, shpc); int ret =3D qemu_get_buffer(f, d->shpc->config, SHPC_SIZEOF(d)); diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c index 5905f6b..97cd167 100644 --- a/hw/scsi/scsi-bus.c +++ b/hw/scsi/scsi-bus.c @@ -1571,7 +1571,7 @@ SCSIDevice *scsi_device_find(SCSIBus *bus, int channe= l, int id, int lun) /* SCSI request list. For simplicity, pv points to the whole device */ =20 static int put_scsi_requests(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { SCSIDevice *s =3D pv; SCSIBus *bus =3D DO_UPCAST(SCSIBus, qbus, s->qdev.parent_bus); @@ -1599,7 +1599,7 @@ static int put_scsi_requests(QEMUFile *f, void *pv, s= ize_t size, } =20 static int get_scsi_requests(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { SCSIDevice *s =3D pv; SCSIBus *bus =3D DO_UPCAST(SCSIBus, qbus, s->qdev.parent_bus); diff --git a/hw/timer/twl92230.c b/hw/timer/twl92230.c index 3b43b46..51ec355 100644 --- a/hw/timer/twl92230.c +++ b/hw/timer/twl92230.c @@ -750,7 +750,7 @@ static int menelaus_rx(I2CSlave *i2c) */ =20 static int get_int32_as_uint16(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { int *v =3D pv; *v =3D qemu_get_be16(f); @@ -758,7 +758,7 @@ static int get_int32_as_uint16(QEMUFile *f, void *pv, s= ize_t size, } =20 static int put_int32_as_uint16(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { int *v =3D pv; qemu_put_be16(f, *v); diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 99094a7..18a42d1 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -2155,7 +2155,7 @@ static int usbredir_post_load(void *priv, int version= _id) =20 /* For usbredirparser migration */ static int usbredir_put_parser(QEMUFile *f, void *priv, size_t unused, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { USBRedirDevice *dev =3D priv; uint8_t *data; @@ -2178,7 +2178,7 @@ static int usbredir_put_parser(QEMUFile *f, void *pri= v, size_t unused, } =20 static int usbredir_get_parser(QEMUFile *f, void *priv, size_t unused, - VMStateField *field) + const VMStateField *field) { USBRedirDevice *dev =3D priv; uint8_t *data; @@ -2222,7 +2222,7 @@ static const VMStateInfo usbredir_parser_vmstate_info= =3D { =20 /* For buffered packets (iso/irq) queue migration */ static int usbredir_put_bufpq(QEMUFile *f, void *priv, size_t unused, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { struct endp_data *endp =3D priv; USBRedirDevice *dev =3D endp->dev; @@ -2245,7 +2245,7 @@ static int usbredir_put_bufpq(QEMUFile *f, void *priv= , size_t unused, } =20 static int usbredir_get_bufpq(QEMUFile *f, void *priv, size_t unused, - VMStateField *field) + const VMStateField *field) { struct endp_data *endp =3D priv; USBRedirDevice *dev =3D endp->dev; @@ -2349,7 +2349,7 @@ static const VMStateDescription usbredir_ep_vmstate = =3D { =20 /* For PacketIdQueue migration */ static int usbredir_put_packet_id_q(QEMUFile *f, void *priv, size_t unused, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmde= sc) { struct PacketIdQueue *q =3D priv; USBRedirDevice *dev =3D q->dev; @@ -2368,7 +2368,7 @@ static int usbredir_put_packet_id_q(QEMUFile *f, void= *priv, size_t unused, } =20 static int usbredir_get_packet_id_q(QEMUFile *f, void *priv, size_t unused, - VMStateField *field) + const VMStateField *field) { struct PacketIdQueue *q =3D priv; USBRedirDevice *dev =3D q->dev; diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c index 4136d23..5828ed1 100644 --- a/hw/virtio/virtio.c +++ b/hw/virtio/virtio.c @@ -1816,7 +1816,7 @@ static const VMStateDescription vmstate_virtio_ringsi= ze =3D { }; =20 static int get_extra_state(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { VirtIODevice *vdev =3D pv; BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); @@ -1830,7 +1830,7 @@ static int get_extra_state(QEMUFile *f, void *pv, siz= e_t size, } =20 static int put_extra_state(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { VirtIODevice *vdev =3D pv; BusState *qbus =3D qdev_get_parent_bus(DEVICE(vdev)); @@ -1979,14 +1979,14 @@ int virtio_save(VirtIODevice *vdev, QEMUFile *f) =20 /* A wrapper for use as a VMState .put function */ static int virtio_device_put(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { return virtio_save(VIRTIO_DEVICE(opaque), f); } =20 /* A wrapper for use as a VMState .get function */ static int virtio_device_get(QEMUFile *f, void *opaque, size_t size, - VMStateField *field) + const VMStateField *field) { VirtIODevice *vdev =3D VIRTIO_DEVICE(opaque); DeviceClass *dc =3D DEVICE_CLASS(VIRTIO_DEVICE_GET_CLASS(vdev)); diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 2b501d0..61bef3e 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -40,8 +40,8 @@ typedef struct VMStateField VMStateField; */ struct VMStateInfo { const char *name; - int (*get)(QEMUFile *f, void *pv, size_t size, VMStateField *field); - int (*put)(QEMUFile *f, void *pv, size_t size, VMStateField *field, + int (*get)(QEMUFile *f, void *pv, size_t size, const VMStateField *fie= ld); + int (*put)(QEMUFile *f, void *pv, size_t size, const VMStateField *fie= ld, QJSON *vmdesc); }; =20 @@ -186,7 +186,7 @@ struct VMStateDescription { int (*post_load)(void *opaque, int version_id); int (*pre_save)(void *opaque); bool (*needed)(void *opaque); - VMStateField *fields; + const VMStateField *fields; const VMStateDescription **subsections; }; =20 diff --git a/migration/savevm.c b/migration/savevm.c index 1c49776..9e45fb4 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -263,15 +263,16 @@ void timer_get(QEMUFile *f, QEMUTimer *ts) * Not in vmstate.c to not add qemu-timer.c as dependency to vmstate.c */ =20 -static int get_timer(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld) +static int get_timer(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { QEMUTimer *v =3D pv; timer_get(f, v); return 0; } =20 -static int put_timer(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld, - QJSON *vmdesc) +static int put_timer(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { QEMUTimer *v =3D pv; timer_put(f, v); diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c index 48184c3..6f75f97 100644 --- a/migration/vmstate-types.c +++ b/migration/vmstate-types.c @@ -22,15 +22,16 @@ =20 /* bool */ =20 -static int get_bool(QEMUFile *f, void *pv, size_t size, VMStateField *fiel= d) +static int get_bool(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { bool *v =3D pv; *v =3D qemu_get_byte(f); return 0; } =20 -static int put_bool(QEMUFile *f, void *pv, size_t size, VMStateField *fiel= d, - QJSON *vmdesc) +static int put_bool(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { bool *v =3D pv; qemu_put_byte(f, *v); @@ -45,15 +46,16 @@ const VMStateInfo vmstate_info_bool =3D { =20 /* 8 bit int */ =20 -static int get_int8(QEMUFile *f, void *pv, size_t size, VMStateField *fiel= d) +static int get_int8(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { int8_t *v =3D pv; qemu_get_s8s(f, v); return 0; } =20 -static int put_int8(QEMUFile *f, void *pv, size_t size, VMStateField *fiel= d, - QJSON *vmdesc) +static int put_int8(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { int8_t *v =3D pv; qemu_put_s8s(f, v); @@ -68,15 +70,16 @@ const VMStateInfo vmstate_info_int8 =3D { =20 /* 16 bit int */ =20 -static int get_int16(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld) +static int get_int16(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { int16_t *v =3D pv; qemu_get_sbe16s(f, v); return 0; } =20 -static int put_int16(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld, - QJSON *vmdesc) +static int put_int16(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { int16_t *v =3D pv; qemu_put_sbe16s(f, v); @@ -91,15 +94,16 @@ const VMStateInfo vmstate_info_int16 =3D { =20 /* 32 bit int */ =20 -static int get_int32(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld) +static int get_int32(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { int32_t *v =3D pv; qemu_get_sbe32s(f, v); return 0; } =20 -static int put_int32(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld, - QJSON *vmdesc) +static int put_int32(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { int32_t *v =3D pv; qemu_put_sbe32s(f, v); @@ -116,7 +120,7 @@ const VMStateInfo vmstate_info_int32 =3D { in the field */ =20 static int get_int32_equal(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { int32_t *v =3D pv; int32_t v2; @@ -142,7 +146,8 @@ const VMStateInfo vmstate_info_int32_equal =3D { * and less than or equal to the one in the field. */ =20 -static int get_int32_le(QEMUFile *f, void *pv, size_t size, VMStateField *= field) +static int get_int32_le(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { int32_t *cur =3D pv; int32_t loaded; @@ -166,15 +171,16 @@ const VMStateInfo vmstate_info_int32_le =3D { =20 /* 64 bit int */ =20 -static int get_int64(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld) +static int get_int64(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { int64_t *v =3D pv; qemu_get_sbe64s(f, v); return 0; } =20 -static int put_int64(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld, - QJSON *vmdesc) +static int put_int64(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { int64_t *v =3D pv; qemu_put_sbe64s(f, v); @@ -189,15 +195,16 @@ const VMStateInfo vmstate_info_int64 =3D { =20 /* 8 bit unsigned int */ =20 -static int get_uint8(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld) +static int get_uint8(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { uint8_t *v =3D pv; qemu_get_8s(f, v); return 0; } =20 -static int put_uint8(QEMUFile *f, void *pv, size_t size, VMStateField *fie= ld, - QJSON *vmdesc) +static int put_uint8(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { uint8_t *v =3D pv; qemu_put_8s(f, v); @@ -212,15 +219,16 @@ const VMStateInfo vmstate_info_uint8 =3D { =20 /* 16 bit unsigned int */ =20 -static int get_uint16(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld) +static int get_uint16(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { uint16_t *v =3D pv; qemu_get_be16s(f, v); return 0; } =20 -static int put_uint16(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, - QJSON *vmdesc) +static int put_uint16(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { uint16_t *v =3D pv; qemu_put_be16s(f, v); @@ -235,15 +243,16 @@ const VMStateInfo vmstate_info_uint16 =3D { =20 /* 32 bit unsigned int */ =20 -static int get_uint32(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld) +static int get_uint32(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { uint32_t *v =3D pv; qemu_get_be32s(f, v); return 0; } =20 -static int put_uint32(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, - QJSON *vmdesc) +static int put_uint32(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { uint32_t *v =3D pv; qemu_put_be32s(f, v); @@ -260,7 +269,7 @@ const VMStateInfo vmstate_info_uint32 =3D { in the field */ =20 static int get_uint32_equal(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint32_t *v =3D pv; uint32_t v2; @@ -284,15 +293,16 @@ const VMStateInfo vmstate_info_uint32_equal =3D { =20 /* 64 bit unsigned int */ =20 -static int get_uint64(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld) +static int get_uint64(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { uint64_t *v =3D pv; qemu_get_be64s(f, v); return 0; } =20 -static int put_uint64(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, - QJSON *vmdesc) +static int put_uint64(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { uint64_t *v =3D pv; qemu_put_be64s(f, v); @@ -305,7 +315,8 @@ const VMStateInfo vmstate_info_uint64 =3D { .put =3D put_uint64, }; =20 -static int get_nullptr(QEMUFile *f, void *pv, size_t size, VMStateField *f= ield) +static int get_nullptr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) =20 { if (qemu_get_byte(f) =3D=3D VMS_NULLPTR_MARKER) { @@ -316,7 +327,7 @@ static int get_nullptr(QEMUFile *f, void *pv, size_t si= ze, VMStateField *field) } =20 static int put_nullptr(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) =20 { if (pv =3D=3D NULL) { @@ -337,7 +348,7 @@ const VMStateInfo vmstate_info_nullptr =3D { in the field */ =20 static int get_uint64_equal(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint64_t *v =3D pv; uint64_t v2; @@ -363,7 +374,7 @@ const VMStateInfo vmstate_info_uint64_equal =3D { in the field */ =20 static int get_uint8_equal(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint8_t *v =3D pv; uint8_t v2; @@ -389,7 +400,7 @@ const VMStateInfo vmstate_info_uint8_equal =3D { in the field */ =20 static int get_uint16_equal(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint16_t *v =3D pv; uint16_t v2; @@ -414,7 +425,7 @@ const VMStateInfo vmstate_info_uint16_equal =3D { /* floating point */ =20 static int get_float64(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { float64 *v =3D pv; =20 @@ -422,8 +433,8 @@ static int get_float64(QEMUFile *f, void *pv, size_t si= ze, return 0; } =20 -static int put_float64(QEMUFile *f, void *pv, size_t size, VMStateField *f= ield, - QJSON *vmdesc) +static int put_float64(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { uint64_t *v =3D pv; =20 @@ -440,7 +451,7 @@ const VMStateInfo vmstate_info_float64 =3D { /* CPU_DoubleU type */ =20 static int get_cpudouble(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { CPU_DoubleU *v =3D pv; qemu_get_be32s(f, &v->l.upper); @@ -449,7 +460,7 @@ static int get_cpudouble(QEMUFile *f, void *pv, size_t = size, } =20 static int put_cpudouble(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { CPU_DoubleU *v =3D pv; qemu_put_be32s(f, &v->l.upper); @@ -466,15 +477,15 @@ const VMStateInfo vmstate_info_cpudouble =3D { /* uint8_t buffers */ =20 static int get_buffer(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint8_t *v =3D pv; qemu_get_buffer(f, v, size); return 0; } =20 -static int put_buffer(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, - QJSON *vmdesc) +static int put_buffer(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { uint8_t *v =3D pv; qemu_put_buffer(f, v, size); @@ -491,7 +502,7 @@ const VMStateInfo vmstate_info_buffer =3D { not useful anymore */ =20 static int get_unused_buffer(QEMUFile *f, void *pv, size_t size, - VMStateField *field) + const VMStateField *field) { uint8_t buf[1024]; int block_len; @@ -505,7 +516,7 @@ static int get_unused_buffer(QEMUFile *f, void *pv, siz= e_t size, } =20 static int put_unused_buffer(QEMUFile *f, void *pv, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { static const uint8_t buf[1024]; int block_len; @@ -531,7 +542,8 @@ const VMStateInfo vmstate_info_unused_buffer =3D { * in fields that don't really exist in the parent but need to be in the * stream. */ -static int get_tmp(QEMUFile *f, void *pv, size_t size, VMStateField *field) +static int get_tmp(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { int ret; const VMStateDescription *vmsd =3D field->vmsd; @@ -545,8 +557,8 @@ static int get_tmp(QEMUFile *f, void *pv, size_t size, = VMStateField *field) return ret; } =20 -static int put_tmp(QEMUFile *f, void *pv, size_t size, VMStateField *field, - QJSON *vmdesc) +static int put_tmp(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { const VMStateDescription *vmsd =3D field->vmsd; void *tmp =3D g_malloc(size); @@ -573,7 +585,8 @@ const VMStateInfo vmstate_info_tmp =3D { */ /* This is the number of 64 bit words sent over the wire */ #define BITS_TO_U64S(nr) DIV_ROUND_UP(nr, 64) -static int get_bitmap(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld) +static int get_bitmap(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { unsigned long *bmp =3D pv; int i, idx =3D 0; @@ -587,8 +600,8 @@ static int get_bitmap(QEMUFile *f, void *pv, size_t siz= e, VMStateField *field) return 0; } =20 -static int put_bitmap(QEMUFile *f, void *pv, size_t size, VMStateField *fi= eld, - QJSON *vmdesc) +static int put_bitmap(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { unsigned long *bmp =3D pv; int i, idx =3D 0; @@ -613,7 +626,7 @@ const VMStateInfo vmstate_info_bitmap =3D { * meta data about the QTAILQ is encoded in a VMStateField structure */ static int get_qtailq(QEMUFile *f, void *pv, size_t unused_size, - VMStateField *field) + const VMStateField *field) { int ret =3D 0; const VMStateDescription *vmsd =3D field->vmsd; @@ -652,7 +665,7 @@ static int get_qtailq(QEMUFile *f, void *pv, size_t unu= sed_size, =20 /* put for QTAILQ */ static int put_qtailq(QEMUFile *f, void *pv, size_t unused_size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { const VMStateDescription *vmsd =3D field->vmsd; /* offset of the QTAILQ entry in a QTAILQ element*/ diff --git a/migration/vmstate.c b/migration/vmstate.c index 0bc240a..80b5900 100644 --- a/migration/vmstate.c +++ b/migration/vmstate.c @@ -26,7 +26,7 @@ static int vmstate_subsection_save(QEMUFile *f, const VMS= tateDescription *vmsd, static int vmstate_subsection_load(QEMUFile *f, const VMStateDescription *= vmsd, void *opaque); =20 -static int vmstate_n_elems(void *opaque, VMStateField *field) +static int vmstate_n_elems(void *opaque, const VMStateField *field) { int n_elems =3D 1; =20 @@ -50,7 +50,7 @@ static int vmstate_n_elems(void *opaque, VMStateField *fi= eld) return n_elems; } =20 -static int vmstate_size(void *opaque, VMStateField *field) +static int vmstate_size(void *opaque, const VMStateField *field) { int size =3D field->size; =20 @@ -64,7 +64,8 @@ static int vmstate_size(void *opaque, VMStateField *field) return size; } =20 -static void vmstate_handle_alloc(void *ptr, VMStateField *field, void *opa= que) +static void vmstate_handle_alloc(void *ptr, const VMStateField *field, + void *opaque) { if (field->flags & VMS_POINTER && field->flags & VMS_ALLOC) { gsize size =3D vmstate_size(opaque, field); @@ -78,7 +79,7 @@ static void vmstate_handle_alloc(void *ptr, VMStateField = *field, void *opaque) int vmstate_load_state(QEMUFile *f, const VMStateDescription *vmsd, void *opaque, int version_id) { - VMStateField *field =3D vmsd->fields; + const VMStateField *field =3D vmsd->fields; int ret =3D 0; =20 trace_vmstate_load_state(vmsd->name, version_id); @@ -171,9 +172,10 @@ int vmstate_load_state(QEMUFile *f, const VMStateDescr= iption *vmsd, return ret; } =20 -static int vmfield_name_num(VMStateField *start, VMStateField *search) +static int vmfield_name_num(const VMStateField *start, + const VMStateField *search) { - VMStateField *field; + const VMStateField *field; int found =3D 0; =20 for (field =3D start; field->name; field++) { @@ -188,9 +190,10 @@ static int vmfield_name_num(VMStateField *start, VMSta= teField *search) return -1; } =20 -static bool vmfield_name_is_unique(VMStateField *start, VMStateField *sear= ch) +static bool vmfield_name_is_unique(const VMStateField *start, + const VMStateField *search) { - VMStateField *field; + const VMStateField *field; int found =3D 0; =20 for (field =3D start; field->name; field++) { @@ -206,7 +209,7 @@ static bool vmfield_name_is_unique(VMStateField *start,= VMStateField *search) return true; } =20 -static const char *vmfield_get_type_name(VMStateField *field) +static const char *vmfield_get_type_name(const VMStateField *field) { const char *type =3D "unknown"; =20 @@ -221,7 +224,7 @@ static const char *vmfield_get_type_name(VMStateField *= field) return type; } =20 -static bool vmsd_can_compress(VMStateField *field) +static bool vmsd_can_compress(const VMStateField *field) { if (field->field_exists) { /* Dynamically existing fields mess up compression */ @@ -229,7 +232,7 @@ static bool vmsd_can_compress(VMStateField *field) } =20 if (field->flags & VMS_STRUCT) { - VMStateField *sfield =3D field->vmsd->fields; + const VMStateField *sfield =3D field->vmsd->fields; while (sfield->name) { if (!vmsd_can_compress(sfield)) { /* Child elements can't compress, so can't we */ @@ -248,7 +251,7 @@ static bool vmsd_can_compress(VMStateField *field) } =20 static void vmsd_desc_field_start(const VMStateDescription *vmsd, QJSON *v= mdesc, - VMStateField *field, int i, int max) + const VMStateField *field, int i, int ma= x) { char *name, *old_name; bool is_array =3D max > 1; @@ -287,7 +290,7 @@ static void vmsd_desc_field_start(const VMStateDescript= ion *vmsd, QJSON *vmdesc, } =20 static void vmsd_desc_field_end(const VMStateDescription *vmsd, QJSON *vmd= esc, - VMStateField *field, size_t size, int i) + const VMStateField *field, size_t size, in= t i) { if (!vmdesc) { return; @@ -323,7 +326,7 @@ int vmstate_save_state_v(QEMUFile *f, const VMStateDesc= ription *vmsd, void *opaque, QJSON *vmdesc, int version_id) { int ret =3D 0; - VMStateField *field =3D vmsd->fields; + const VMStateField *field =3D vmsd->fields; =20 trace_vmstate_save_state_top(vmsd->name); =20 diff --git a/target/alpha/machine.c b/target/alpha/machine.c index 0914ba5..abc81ce 100644 --- a/target/alpha/machine.c +++ b/target/alpha/machine.c @@ -5,7 +5,8 @@ #include "hw/boards.h" #include "migration/cpu.h" =20 -static int get_fpcr(QEMUFile *f, void *opaque, size_t size, VMStateField *= field) +static int get_fpcr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field) { CPUAlphaState *env =3D opaque; cpu_alpha_store_fpcr(env, qemu_get_be64(f)); @@ -13,7 +14,7 @@ static int get_fpcr(QEMUFile *f, void *opaque, size_t siz= e, VMStateField *field) } =20 static int put_fpcr(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { CPUAlphaState *env =3D opaque; qemu_put_be64(f, cpu_alpha_load_fpcr(env)); diff --git a/target/arm/machine.c b/target/arm/machine.c index 2033816..7a22ebc 100644 --- a/target/arm/machine.c +++ b/target/arm/machine.c @@ -18,7 +18,7 @@ static bool vfp_needed(void *opaque) } =20 static int get_fpscr(QEMUFile *f, void *opaque, size_t size, - VMStateField *field) + const VMStateField *field) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -29,7 +29,7 @@ static int get_fpscr(QEMUFile *f, void *opaque, size_t si= ze, } =20 static int put_fpscr(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -503,7 +503,7 @@ static const VMStateDescription vmstate_m_security =3D { }; =20 static int get_cpsr(QEMUFile *f, void *opaque, size_t size, - VMStateField *field) + const VMStateField *field) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -559,7 +559,7 @@ static int get_cpsr(QEMUFile *f, void *opaque, size_t s= ize, } =20 static int put_cpsr(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { ARMCPU *cpu =3D opaque; CPUARMState *env =3D &cpu->env; @@ -585,7 +585,7 @@ static const VMStateInfo vmstate_cpsr =3D { }; =20 static int get_power(QEMUFile *f, void *opaque, size_t size, - VMStateField *field) + const VMStateField *field) { ARMCPU *cpu =3D opaque; bool powered_off =3D qemu_get_byte(f); @@ -594,7 +594,7 @@ static int get_power(QEMUFile *f, void *opaque, size_t = size, } =20 static int put_power(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { ARMCPU *cpu =3D opaque; =20 diff --git a/target/hppa/machine.c b/target/hppa/machine.c index 8e07778..a1bee97 100644 --- a/target/hppa/machine.c +++ b/target/hppa/machine.c @@ -46,7 +46,8 @@ VMSTATE_UINTTR_ARRAY_V(_f, _s, _n, 0) =20 =20 -static int get_psw(QEMUFile *f, void *opaque, size_t size, VMStateField *f= ield) +static int get_psw(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field) { CPUHPPAState *env =3D opaque; cpu_hppa_put_psw(env, qemu_get_betr(f)); @@ -54,7 +55,7 @@ static int get_psw(QEMUFile *f, void *opaque, size_t size= , VMStateField *field) } =20 static int put_psw(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { CPUHPPAState *env =3D opaque; qemu_put_betr(f, cpu_hppa_get_psw(env)); @@ -68,7 +69,8 @@ static const VMStateInfo vmstate_psw =3D { }; =20 /* FIXME: Use the PA2.0 format, which is a superset of the PA1.1 format. = */ -static int get_tlb(QEMUFile *f, void *opaque, size_t size, VMStateField *f= ield) +static int get_tlb(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field) { hppa_tlb_entry *ent =3D opaque; uint32_t val; @@ -94,7 +96,7 @@ static int get_tlb(QEMUFile *f, void *opaque, size_t size= , VMStateField *field) } =20 static int put_tlb(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { hppa_tlb_entry *ent =3D opaque; uint32_t val =3D 0; diff --git a/target/mips/machine.c b/target/mips/machine.c index 70a8909..704e9c0 100644 --- a/target/mips/machine.c +++ b/target/mips/machine.c @@ -20,7 +20,8 @@ static int cpu_post_load(void *opaque, int version_id) =20 /* FPU state */ =20 -static int get_fpr(QEMUFile *f, void *pv, size_t size, VMStateField *field) +static int get_fpr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { int i; fpr_t *v =3D pv; @@ -31,8 +32,8 @@ static int get_fpr(QEMUFile *f, void *pv, size_t size, VM= StateField *field) return 0; } =20 -static int put_fpr(QEMUFile *f, void *pv, size_t size, VMStateField *field, - QJSON *vmdesc) +static int put_fpr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { int i; fpr_t *v =3D pv; @@ -128,7 +129,8 @@ const VMStateDescription vmstate_mvp =3D { =20 /* TLB state */ =20 -static int get_tlb(QEMUFile *f, void *pv, size_t size, VMStateField *field) +static int get_tlb(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { r4k_tlb_t *v =3D pv; uint16_t flags; @@ -155,8 +157,8 @@ static int get_tlb(QEMUFile *f, void *pv, size_t size, = VMStateField *field) return 0; } =20 -static int put_tlb(QEMUFile *f, void *pv, size_t size, VMStateField *field, - QJSON *vmdesc) +static int put_tlb(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { r4k_tlb_t *v =3D pv; =20 diff --git a/target/openrisc/machine.c b/target/openrisc/machine.c index 1eedbf3..5d822f7 100644 --- a/target/openrisc/machine.c +++ b/target/openrisc/machine.c @@ -49,7 +49,8 @@ static const VMStateDescription vmstate_cpu_tlb =3D { } }; =20 -static int get_sr(QEMUFile *f, void *opaque, size_t size, VMStateField *fi= eld) +static int get_sr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field) { CPUOpenRISCState *env =3D opaque; cpu_set_sr(env, qemu_get_be32(f)); @@ -57,7 +58,7 @@ static int get_sr(QEMUFile *f, void *opaque, size_t size,= VMStateField *field) } =20 static int put_sr(QEMUFile *f, void *opaque, size_t size, - VMStateField *field, QJSON *vmdesc) + const VMStateField *field, QJSON *vmdesc) { CPUOpenRISCState *env =3D opaque; qemu_put_be32(f, cpu_get_sr(env)); diff --git a/target/ppc/machine.c b/target/ppc/machine.c index b2745ec..e7b3725 100644 --- a/target/ppc/machine.c +++ b/target/ppc/machine.c @@ -110,7 +110,8 @@ static int cpu_load_old(QEMUFile *f, void *opaque, int = version_id) return 0; } =20 -static int get_avr(QEMUFile *f, void *pv, size_t size, VMStateField *field) +static int get_avr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { ppc_avr_t *v =3D pv; =20 @@ -120,8 +121,8 @@ static int get_avr(QEMUFile *f, void *pv, size_t size, = VMStateField *field) return 0; } =20 -static int put_avr(QEMUFile *f, void *pv, size_t size, VMStateField *field, - QJSON *vmdesc) +static int put_avr(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { ppc_avr_t *v =3D pv; =20 @@ -452,7 +453,8 @@ static const VMStateDescription vmstate_sr =3D { }; =20 #ifdef TARGET_PPC64 -static int get_slbe(QEMUFile *f, void *pv, size_t size, VMStateField *fiel= d) +static int get_slbe(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) { ppc_slb_t *v =3D pv; =20 @@ -462,8 +464,8 @@ static int get_slbe(QEMUFile *f, void *pv, size_t size,= VMStateField *field) return 0; } =20 -static int put_slbe(QEMUFile *f, void *pv, size_t size, VMStateField *fiel= d, - QJSON *vmdesc) +static int put_slbe(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, QJSON *vmdesc) { ppc_slb_t *v =3D pv; =20 diff --git a/target/sparc/machine.c b/target/sparc/machine.c index 8ff9dea..7791c84 100644 --- a/target/sparc/machine.c +++ b/target/sparc/machine.c @@ -56,7 +56,8 @@ static const VMStateDescription vmstate_tlb_entry =3D { }; #endif =20 -static int get_psr(QEMUFile *f, void *opaque, size_t size, VMStateField *f= ield) +static int get_psr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; @@ -69,8 +70,8 @@ static int get_psr(QEMUFile *f, void *opaque, size_t size= , VMStateField *field) return 0; } =20 -static int put_psr(QEMUFile *f, void *opaque, size_t size, VMStateField *f= ield, - QJSON *vmdesc) +static int put_psr(QEMUFile *f, void *opaque, size_t size, + const VMStateField *field, QJSON *vmdesc) { SPARCCPU *cpu =3D opaque; CPUSPARCState *env =3D &cpu->env; --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261742159866.343394770667; Mon, 26 Nov 2018 11:49:02 -0800 (PST) Received: from localhost ([::1]:38471 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMsO-0007K5-DC for importer@patchew.org; Mon, 26 Nov 2018 14:49:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45269) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkS-00084e-Db for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkR-0004ca-Bh for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:48 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:41072) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkR-0004Z9-5H for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:47 -0500 Received: by mail-wr1-x42f.google.com with SMTP id x10so20232379wrs.8 for ; Mon, 26 Nov 2018 11:40:47 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=Gkr28uI2RgDgNRbPBvblLh3yOdevJFmQk9xcSkxBEo8=; b=ADnFiv3a3D7gT5fAbJXOdOPWanMG7jBxLzvkyXHCiYIQEfqSBxf+Bfa70DpNh/sRM4 wdeyY2Qtbmqu4Zw2mLjtme7WoktFWAbTmTT8akqArGC+sJ3ve+7X3aXhfbyFC31Rq5V/ 6FYr18Pi49687Ls2pddik8rHe61TPrxlgZg5qFyENrkCgX0UvL+gghsKnXtMhatK0W0C 6W5LnCdF7nJevb4gKahvp1pcD/InpfKszeNF+AvdW+mIakjFKJi88ZpifLyhkZJ6GgSG i2X2YV639iPreYeN7mXnZ4cLgNXeHL496BHJenI1c7shMCmj4a2vz4EKqBkDTAhVxyyQ z0gw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=Gkr28uI2RgDgNRbPBvblLh3yOdevJFmQk9xcSkxBEo8=; b=sHFkVKIlRo4zIBu7dSw4Mdqc6QS+xzN9+Uh3wkzQeToFAGwMKnxia0xpwlGXIXw6Vw 0JV+RSOKkzUVEmFUWjQOQA42dPd0+O812B7fY+lhUf36Cfuw35DCkulPRmbccPv1XIXN GmWmBQFYEmTWYvZY4ibNDzuhJQwqKkrx/rKOWhTytVLrDe4aRJkD72r6bJNtvwKvNEGv qRl1x89oVY1wkN1Plh6ft6bmFDh7tNDZW3lW3FG9bf1h2WOHHYUHt/l61K47Nw/6N1Sm rZzT1e6CwK7GV8DXrswIdu8sJMhvrApwfU7yuX3HVbeX8VfWXFSwku4G4GHW8J+p8mak 4GlQ== X-Gm-Message-State: AA+aEWZ8nk6ExzfmmdUahWcHDuOHir/P6ag0o5s1Nc8CpBJ49oRCKEIL 8scB/7c39t2Oi9DZH6oUySIqBq5r X-Google-Smtp-Source: AFSGD/X+NLmQFrmzcnnYM1KzhGdX4idYZj+WoGec/xIyKjdQvhYYNb7B/ri/9BbICpJF/bv4uJCzQg== X-Received: by 2002:a5d:5089:: with SMTP id a9mr25478890wrt.327.1543261245307; Mon, 26 Nov 2018 11:40:45 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:26 +0100 Message-Id: <1543261235-2834-7-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42f Subject: [Qemu-devel] [PULL 06/15] vl: Improve error message when we can't load fw_cfg from file X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Qiang Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Li Qiang parse_fw_cfg() reports "can't load" without further details. Get the details from g_file_get_contents(), and include them in the error message. Signed-off-by: Li Qiang Message-Id: <1541051971-28584-1-git-send-email-liq3ea@gmail.com> Signed-off-by: Paolo Bonzini --- vl.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vl.c b/vl.c index fa25d1a..32ab6e6 100644 --- a/vl.c +++ b/vl.c @@ -2244,8 +2244,10 @@ static int parse_fw_cfg(void *opaque, QemuOpts *opts= , Error **errp) size =3D strlen(str); /* NUL terminator NOT included in fw_cfg blo= b */ buf =3D g_memdup(str, size); } else { - if (!g_file_get_contents(file, &buf, &size, NULL)) { - error_setg(errp, "can't load %s", file); + GError *err =3D NULL; + if (!g_file_get_contents(file, &buf, &size, &err)) { + error_setg(errp, "can't load %s: %s", file, err->message); + g_error_free(err); return -1; } } --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261378310825.7074708637281; Mon, 26 Nov 2018 11:42:58 -0800 (PST) Received: from localhost ([::1]:38442 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMmW-0000tM-HH for importer@patchew.org; Mon, 26 Nov 2018 14:42:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45421) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkW-00087x-Am for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkS-0004fl-Rz for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:52 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:56081) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkS-0004ch-JJ for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:48 -0500 Received: by mail-wm1-x32e.google.com with SMTP id y139so19403397wmc.5 for ; Mon, 26 Nov 2018 11:40:48 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=df7Bv7dtuHLicDy2wH6wy2eqdZWNF34GFUOfAVs9FY0=; b=qKMBzwXwiz2ycT52a1NGC7CtOy0zc9vvGgSmDwF+2U4k1VDTDn/Dv4/RBMa5OnN198 KfaYb+YUFn692zd/oH5bnawl1XXN2HAsgrF/RMc1YsuW/qsEx3Tccv69sWx2tYYuS5yH VsirtKrzlOS8NXz4buaKffcV/kmLNZM2RQQ4jGfen5UbWSAqtnOK/rAZ5HZI+ils4X28 ZkND0wj134z8idtvc/FURBB01aVSeUF81M/agSVc6v8q0p2x3TLcqsiWPHhytsTiSpKI xfyDjjZez0ZtnmmE90FK1m0TBXAtJSfUCdbMxUC3XSru112Pu8OmvfOdohNiuVHewoYQ 7wKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=df7Bv7dtuHLicDy2wH6wy2eqdZWNF34GFUOfAVs9FY0=; b=RefepmODB9XXFjZ8ZIGJ7saMmWFa8jyzyN7C3DLnUhoZAL4NIztT5PGx5CEnRM9vYz A5GPvMZLbrrMHjyvKNO9r0HR9mXmab86VNQkFEBcwpOyLPqirllLoz59jxiByhKMErEB RuA8n9MQ+djT7rrLehswz6tToQr3SORSe4gh6ZDScYKvzn4I+9gURcjx9Hjb2vC7uHPg Os3aHFogi9adrZzjr++0gloPnSlVxm+BUaph9CI2QvRN70nLFWfaln8aKdj6FhWg4gVK frsylZucIFDpciPb+jvqdUA0NbRDTEaIw+WDNFyoEj23UQi9VXqCHGgBZPbeFFjAEoZ6 Tl2w== X-Gm-Message-State: AGRZ1gIs9kwLlFcrT84qex2RQFZzMR5T1OYK1L+3STTN6HE3RPA6Y1Vm LomX0RFwTkjENoY2NFEzm/jjAe50 X-Google-Smtp-Source: AFSGD/VzM4jVqcJQP6e7CZmJlr99EPoFY1Du8SIWP8wT2onHoSSOwEecmEiYjEItzjTXtyJ/4JRb2w== X-Received: by 2002:a1c:5448:: with SMTP id p8mr25437365wmi.124.1543261246981; Mon, 26 Nov 2018 11:40:46 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:27 +0100 Message-Id: <1543261235-2834-8-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32e Subject: [Qemu-devel] [PULL 07/15] vhost-user-bridge: fix recvmsg iovlen X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Marc-Andr=C3=A9 Lureau After iov_discard_front(), the iov may be smaller than its initial size. Fixes the heap-buffer-overflow spotted by ASAN: =3D=3D9036=3D=3DERROR: AddressSanitizer: heap-buffer-overflow on address 0x= 6060000001e0 at pc 0x7fe632eca3f0 bp 0x7ffddc4a05a0 sp 0x7ffddc49fd48 WRITE of size 32 at 0x6060000001e0 thread T0 #0 0x7fe632eca3ef (/lib64/libasan.so.5+0x773ef) #1 0x7fe632ecad23 in __interceptor_recvmsg (/lib64/libasan.so.5+0x77d23) #2 0x561e7491936b in vubr_backend_recv_cb /home/elmarco/src/qemu/tests/= vhost-user-bridge.c:333 #3 0x561e74917711 in dispatcher_wait /home/elmarco/src/qemu/tests/vhost= -user-bridge.c:160 #4 0x561e7491c3b5 in vubr_run /home/elmarco/src/qemu/tests/vhost-user-b= ridge.c:725 #5 0x561e7491c85c in main /home/elmarco/src/qemu/tests/vhost-user-bridg= e.c:806 #6 0x7fe631a6c412 in __libc_start_main (/lib64/libc.so.6+0x24412) #7 0x561e7491667d in _start (/home/elmarco/src/qemu/build/tests/vhost-u= ser-bridge+0x3967d) 0x6060000001e0 is located 0 bytes to the right of 64-byte region [0x6060000= 001a0,0x6060000001e0) allocated by thread T0 here: #0 0x7fe632f42848 in __interceptor_malloc (/lib64/libasan.so.5+0xef848) #1 0x561e7493acd8 in virtqueue_alloc_element /home/elmarco/src/qemu/con= trib/libvhost-user/libvhost-user.c:1848 #2 0x561e7493c2a8 in vu_queue_pop /home/elmarco/src/qemu/contrib/libvho= st-user/libvhost-user.c:1954 #3 0x561e749189bf in vubr_backend_recv_cb /home/elmarco/src/qemu/tests/= vhost-user-bridge.c:297 #4 0x561e74917711 in dispatcher_wait /home/elmarco/src/qemu/tests/vhost= -user-bridge.c:160 #5 0x561e7491c3b5 in vubr_run /home/elmarco/src/qemu/tests/vhost-user-b= ridge.c:725 #6 0x561e7491c85c in main /home/elmarco/src/qemu/tests/vhost-user-bridg= e.c:806 #7 0x7fe631a6c412 in __libc_start_main (/lib64/libc.so.6+0x24412) SUMMARY: AddressSanitizer: heap-buffer-overflow (/lib64/libasan.so.5+0x773e= f) Shadow bytes around the buggy address: 0x0c0c7fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c0c7fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c0c7fff8000: fa fa fa fa 00 00 00 00 00 00 05 fa fa fa fa fa 0x0c0c7fff8010: 00 00 00 00 00 00 00 00 fa fa fa fa fd fd fd fd 0x0c0c7fff8020: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd =3D>0x0c0c7fff8030: fa fa fa fa 00 00 00 00 00 00 00 00[fa]fa fa fa 0x0c0c7fff8040: fd fd fd fd fd fd fd fd fa fa fa fa fd fd fd fd 0x0c0c7fff8050: fd fd fd fd fa fa fa fa fd fd fd fd fd fd fd fd 0x0c0c7fff8060: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c0c7fff8070: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c0c7fff8080: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa Signed-off-by: Marc-Andr=C3=A9 Lureau Message-Id: <20181109173028.3372-1-marcandre.lureau@redhat.com> --- tests/vhost-user-bridge.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/vhost-user-bridge.c b/tests/vhost-user-bridge.c index 0884294..0cf8d0b 100644 --- a/tests/vhost-user-bridge.c +++ b/tests/vhost-user-bridge.c @@ -323,7 +323,7 @@ vubr_backend_recv_cb(int sock, void *ctx) .msg_name =3D (struct sockaddr *) &vubr->backend_udp_dest, .msg_namelen =3D sizeof(struct sockaddr_in), .msg_iov =3D sg, - .msg_iovlen =3D elem->in_num, + .msg_iovlen =3D num, .msg_flags =3D MSG_DONTWAIT, }; do { --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261377271648.9817216145599; Mon, 26 Nov 2018 11:42:57 -0800 (PST) Received: from localhost ([::1]:38441 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMmV-0000sb-Lz for importer@patchew.org; Mon, 26 Nov 2018 14:42:55 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45420) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkW-00087w-Ap for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkT-0004ge-Dy for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:52 -0500 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]:34735) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkT-0004eb-6e; Mon, 26 Nov 2018 14:40:49 -0500 Received: by mail-wr1-x436.google.com with SMTP id j2so20256721wrw.1; Mon, 26 Nov 2018 11:40:49 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=wdzcsvrGT6FmOg86kmYPFgaKb+SRUGdMflhKAb/tGeQ=; b=m1p8C750xax+UztEgrolBUxEDBl8cFOFam0a53og6+1hFgVaVre3MEErF34W7Zf9zc bK8ZUQNsvoPhwV0vYY/6IvzCwWcTAyJi/d3cWpUZ+nM5iKOmxkDK+GWN7OYpNDuHpiuv 0Xox2WZ+JEk46EjvCPBovdzf4X1YvJpCWae0Q0Wgfv0saMXHNQFWDkkzkpimtuBPxtPg 2RkozR7Ex4vQswElQ5nC74P7Y+tZlFC8KWCttUUgCVey11SfP7VcLg112zQgpkmVGlZ2 BzHtX2lBxY1de3WcDQ0mSw2Uh7Cdlheit4faRKNzblMMIL34HI2jVt+Bx1eS551mE/1w l6Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=wdzcsvrGT6FmOg86kmYPFgaKb+SRUGdMflhKAb/tGeQ=; b=RvNF/tQHMTSkld8hl4iM8Ix48LG2i8O9vXlLIZsw0cCXlMJrvHEzU6xIsJHzHG8YS0 le37gQcJLTdBdCJetMAeTXQRS0aMPLnYXxOWf+aA6kYXE9zcu9d7LIbnBjQwBlS7/tAD VXRY+rb/9hFZrU5eBVg+XURG54E1oHVt9YsjrOwSABK+CwpWURLJF/8dUG1z+GfR6D/w W90/fnkewPNjXxHkPmUPSBu75tf77LaOXbQhvKFRR8YshFKhqImhWwpDR4SV2CnUh5+I pMBsVG4R72fYiSYdNQ/NAPmZ18/JzUK1XxlytscWGYqv2/95uFhLmu8AX3YnH8tD2vlc NtQw== X-Gm-Message-State: AA+aEWbvCDJOu8hbjMGAn+cQEfLoc4ki5b+prFwx59jazOjhRc2qWF3w iT8O56bVfnY9n+DwT+gPVJDY0XQ6 X-Google-Smtp-Source: AFSGD/WYbfI+E37+VfC3TaozLyHkbPuzwryQKGI9GPwAZFoIgTJ2VmRw9zMxEJiwiuWChTYL+KL5xA== X-Received: by 2002:a5d:4dc8:: with SMTP id f8mr25543563wru.45.1543261247747; Mon, 26 Nov 2018 11:40:47 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:28 +0100 Message-Id: <1543261235-2834-9-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::436 Subject: [Qemu-devel] [PULL 08/15] vl.c: remove outdated comment X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-trivial@nongnu.org, Li Qiang Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Li Qiang Cc: qemu-trivial@nongnu.org Signed-off-by: Li Qiang Message-Id: <1542276385-7638-1-git-send-email-liq3ea@gmail.com> Signed-off-by: Paolo Bonzini --- vl.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/vl.c b/vl.c index 32ab6e6..a4430ac 100644 --- a/vl.c +++ b/vl.c @@ -1522,9 +1522,6 @@ static int machine_help_func(QemuOpts *opts, MachineS= tate *machine) return 1; } =20 -/***********************************************************/ -/* main execution loop */ - struct vm_change_state_entry { VMChangeStateHandler *cb; void *opaque; --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261945403724.8088611156855; Mon, 26 Nov 2018 11:52:25 -0800 (PST) Received: from localhost ([::1]:38489 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMvf-0001CK-GW for importer@patchew.org; Mon, 26 Nov 2018 14:52:23 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45417) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkW-00087u-9y for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkV-0004kO-1d for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:52 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:41067) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkU-0004hN-RK for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:50 -0500 Received: by mail-wr1-x429.google.com with SMTP id x10so20232527wrs.8 for ; Mon, 26 Nov 2018 11:40:50 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.47 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QHq4GR1q4PuQkzzcNEx2WmuhH1heiwi84lvLFVnY3BI=; b=AqAcrwiSVKKTfhe1vLsO/WswIQBRklscq4UuOQnpmJOwFkCPXVxDADiul6C/Lgugol XQ1uskf3MhOdy9c2XaL/eVM0INim+8VmO4964n4W7IcEIgjZ5HPw56S0nQHGW/jZx/1P JDvf0bPIGNmxm70KkW3LsxMqXjani3y0r0FfVvXpgu8rClsaSKzQy28NqtOeAqPYR16C xBBEYfhJxWVM513ejxj2cXbrht5bCOyrGd3AVwh/rCmYbEQaON4xdApeiOxVjnKk5XQq TYI0/Dr4UXKz9OSLFOAySTEqpjuIfvVDTjaeICM9ihyRrfVylQ/XiXhjYTJEKcis+xip 6IWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=QHq4GR1q4PuQkzzcNEx2WmuhH1heiwi84lvLFVnY3BI=; b=Eq/F/RG4diqT7PI4V8gYZRH/ZowYwmUZZ0w+BKUd2ZM+j+E51pQCDplFsemvlOGs1n xU9wmVuIS49y9pMRXrF+1ZQI3CjdVKMY6Y0x8VP8+VUE9mh4mNNI5wn67mdMKzjkaVWE AwwXOWLD92lTsst+kdFHKhZY3eBXST5Xumq60M5BPvEY0fnkVI//5TUg38c0s4jrc92J AL2QHxfBFGbTBd8lJRcqPJMaNlunAQohIsjnQl3IdfpDEWp6F/iS98ZXw6Aml95h9hMr sVSk8PYScMc7kwWCzeOAo4qM3dCERkvqjfPkCv3Hps3N0qscvWnb0nM8LP5lGIFti3lf rGTg== X-Gm-Message-State: AA+aEWbtD+lFrpwHoZRjB8AwjUfiS0hr3Rq5r21c4damWyfVUVfLfDlb hIiWRtsMKiJKZInPooNrlR1cTbP4 X-Google-Smtp-Source: AFSGD/Xze1rOa8fxbO7qtXnIc/5kJJhdYR4j6XAE5cRKuW6ol2LEd8jmiU5brbG2X2rUdEa4T/kujg== X-Received: by 2002:adf:81b6:: with SMTP id 51mr26572368wra.240.1543261249163; Mon, 26 Nov 2018 11:40:49 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:29 +0100 Message-Id: <1543261235-2834-10-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::429 Subject: [Qemu-devel] [PULL 09/15] checkpatch: g_test_message does not need a trailing newline X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Signed-off-by: Paolo Bonzini --- scripts/checkpatch.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 06ec14e..60f6f89 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2752,7 +2752,8 @@ sub process { info_vreport| error_report| warn_report| - info_report}x; + info_report| + g_test_message}x; =20 if ($rawline =3D~ /\b(?:$qemu_error_funcs)\s*\(.*\".*\\n/) { ERROR("Error messages should not contain newlines\n" . $herecurr); --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 154326195692590.27104764840749; Mon, 26 Nov 2018 11:52:36 -0800 (PST) Received: from localhost ([::1]:38490 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMvr-0001Hn-4C for importer@patchew.org; Mon, 26 Nov 2018 14:52:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45457) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkX-00088N-Mb for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkW-0004nH-KM for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:53 -0500 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:42859) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkW-0004mK-Cg for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:52 -0500 Received: by mail-wr1-x442.google.com with SMTP id q18so20216916wrx.9 for ; Mon, 26 Nov 2018 11:40:52 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Mzn9bY26ZXE0C1YVCtJvz1TKI7UF/fDUFMH1qGsgdc0=; b=tLbcFJtne86PxU4DmiEj8qqj9TUShyznHOeOrRSWsviUehPUtISCcLBwrnd9n0Ltb7 nVXcUWJAOxdkpCftBFgzH7R9F1V/wjcJw0wdempHvRE6bqHpPmwPIKY3LxPIO/Gnl9nA V+/d6KTt7d1yHIKlwLSMRcv+CmoFMjhqVyVSBFwDTPgcZvxIoz4QLSqkc1jmxf9TdVuF BP/rFQogYN0mOYow4v+ZGO3Y+uTOYCeHhI7TYWFMzt2rWLebdQnR+ISKdCeZG+orQbjv JucBlL8C7kEsYwZRslLVi87Sc+9AMQnbetujRhUaveCDwUhfildihEsMT90+EqsQTTfK xBWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Mzn9bY26ZXE0C1YVCtJvz1TKI7UF/fDUFMH1qGsgdc0=; b=UmDlwPTPUPRx1pwDNSSF3pxW3Piwxl/YAkv2cyC2jPQIJp4WqK0MtHOk6d07nGKrsY 9ANXiZ4VpTNbtfxAWk9xnFHkHZkpThcGFd+lutmQb6qkgAcry023Wj6Mjd5mOql+1Qob Ik3PYp7WfYN/hV1r7wh05jwKDG5dGvNxj5BXwTFImgFhjO/nX2CQpdrlmkp1QNfxQIOF yP0NbmUALpjj9ldmwvYDxhLmcDqWtk1Y23Zou3uiF7V3880oSLxqVv/pQGz5K+tAt3NU aRXKMjb3KumOIGIGbJtZa6FTPhX7oTdhUPz/F8ObfpJbJi9AuWitzI9cecvDrN7Y6CkR 8KMQ== X-Gm-Message-State: AA+aEWZCQH1zd0eAfsZrS2PCQaJvNZFkFGRXJ9I2UjPhhFQI2Zxi7vl6 7oGb2Defo0Lycm/A3CmPnFLDPwkK X-Google-Smtp-Source: AFSGD/V6u+8Z8Xg4zHLDVLnR8inFR+wHAu3YOExfV57NTBcTJqpPpmewsN/idED/WmadovSVFYTCKQ== X-Received: by 2002:adf:9591:: with SMTP id p17mr4320909wrp.224.1543261250511; Mon, 26 Nov 2018 11:40:50 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:30 +0100 Message-Id: <1543261235-2834-11-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::442 Subject: [Qemu-devel] [PULL 10/15] target/i386: Generate #UD when applying LOCK to a register destination X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Richard Henderson Fixes a TCG crash due to attempting the atomic operation without having set up the address first. This does not attempt to fix all of the other missing checks for LOCK. Fixes: a7cee522f35 Fixes: https://bugs.launchpad.net/qemu/+bug/1803160 Signed-off-by: Richard Henderson Message-Id: <20181113193510.24862-1-richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Paolo Bonzini --- target/i386/translate.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/target/i386/translate.c b/target/i386/translate.c index f8bc768..0dd5fbe 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -1268,10 +1268,30 @@ static void gen_helper_fp_arith_STN_ST0(int op, int= opreg) } } =20 +static void gen_exception(DisasContext *s, int trapno, target_ulong cur_ei= p) +{ + gen_update_cc_op(s); + gen_jmp_im(s, cur_eip); + gen_helper_raise_exception(cpu_env, tcg_const_i32(trapno)); + s->base.is_jmp =3D DISAS_NORETURN; +} + +/* Generate #UD for the current instruction. The assumption here is that + the instruction is known, but it isn't allowed in the current cpu mode.= */ +static void gen_illegal_opcode(DisasContext *s) +{ + gen_exception(s, EXCP06_ILLOP, s->pc_start - s->cs_base); +} + /* if d =3D=3D OR_TMP0, it means memory operand (address in A0) */ static void gen_op(DisasContext *s1, int op, TCGMemOp ot, int d) { if (d !=3D OR_TMP0) { + if (s1->prefix & PREFIX_LOCK) { + /* Lock prefix when destination is not memory. */ + gen_illegal_opcode(s1); + return; + } gen_op_mov_v_reg(s1, ot, s1->T0, d); } else if (!(s1->prefix & PREFIX_LOCK)) { gen_op_ld_v(s1, ot, s1->T0, s1->A0); @@ -2469,21 +2489,6 @@ static void gen_leave(DisasContext *s) gen_op_mov_reg_v(s, a_ot, R_ESP, s->T1); } =20 -static void gen_exception(DisasContext *s, int trapno, target_ulong cur_ei= p) -{ - gen_update_cc_op(s); - gen_jmp_im(s, cur_eip); - gen_helper_raise_exception(cpu_env, tcg_const_i32(trapno)); - s->base.is_jmp =3D DISAS_NORETURN; -} - -/* Generate #UD for the current instruction. The assumption here is that - the instruction is known, but it isn't allowed in the current cpu mode.= */ -static void gen_illegal_opcode(DisasContext *s) -{ - gen_exception(s, EXCP06_ILLOP, s->pc_start - s->cs_base); -} - /* Similarly, except that the assumption here is that we don't decode the instruction at all -- either a missing opcode, an unimplemented feature, or just a bogus instruction stream. */ --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261561837903.3069293981381; Mon, 26 Nov 2018 11:46:01 -0800 (PST) Received: from localhost ([::1]:38459 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMpT-0004F3-MD for importer@patchew.org; Mon, 26 Nov 2018 14:45:59 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45463) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkY-00088O-66 for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:54 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkX-0004nZ-E5 for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:54 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:35470) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkX-0004nL-8F for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:53 -0500 Received: by mail-wm1-x32f.google.com with SMTP id c126so19738177wmh.0 for ; Mon, 26 Nov 2018 11:40:53 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=ntlqKsv+KRlNMYmHPGqRovNxu0U9sjbo5LD9JohK5b0=; b=o4gobqIYprI4puny3uQ0Zkg6bLZX+YZhOOITsB0HhxmPwKnfvDvGRR1P8jjVh3831w trBY48lN/6SzZCbZEF3t6CfbhtPV/LzkaaBj/hoW8ycFOiGahj4vs0duOI5M5DWhJ86G ozRdS/gjYxzS8bd8yRo0nw/X0Xu6pjRJsimptqa+NGt/kuj+qIYlOYBSeWHr8d6psbXA HtAzoESydWG9XwzzVpJojzpyL3Intm63Blm4+Vkecp0pDJP+7/yuzMstSfU8Iu7rN1ul arwHmktX15ON3aJCIYjOXcmxD+l9sh/Lht75EtN8XLkvkXsnBDZUdCYHR4v5b1CBuQ2p ySXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=ntlqKsv+KRlNMYmHPGqRovNxu0U9sjbo5LD9JohK5b0=; b=ILNCYbOcWBoDoR+2OtIINMU833zEhfMPQIkd2adpyEAU3N0irsz65iR6aKVnNoECuq NUOdRfWEfRbw2uJTRQeMmpc/hFafY3x8Znl98N4B6HHZqzY9sRdhIOOajG5JN2qX1GUL e4lPZXPlmTRCGtbfi8q4lnqeiXZJEKm4KduPYYL9CeBkiDjmFiZyIW0yA0dOQP92jsxP OcWvB0GKOh/oxuozCnesBQq82EClWbzN3jvMv5yzN4saKWVuS/2b1Ks9SvHCGo9rR64M /Y+3P5r3msSOZJAuJsMg5rMwh44/VKpvDrytZg1lvHLzNwuZHRhazT6YYgkmfv1BclTv TMEg== X-Gm-Message-State: AA+aEWb2GEgKS+gfJOQ9usGPtBSlt4N+mfAY6T9obG57cPH0m88r8g+n QAOCHvl2JDmvsQ6Ld+/e5HtB3y6v X-Google-Smtp-Source: AFSGD/WNWWFZTcB03f2ELLG9fvZB5ffJzn/vwtKeQxIbKItK+Z5EIUlIgUYGBsr+1fcFpRn+mgjG7Q== X-Received: by 2002:a1c:b189:: with SMTP id a131mr22465176wmf.38.1543261251719; Mon, 26 Nov 2018 11:40:51 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:31 +0100 Message-Id: <1543261235-2834-12-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32f Subject: [Qemu-devel] [PULL 11/15] MAINTAINERS: Add some missing entries related to accelerators X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Thomas Huth Add some files from accel/stubs/, include/hw/kvm/ and scripts/kvm/ to the MAINTAINERS file. Signed-off-by: Thomas Huth Message-Id: <1542891438-13329-1-git-send-email-thuth@redhat.com> Signed-off-by: Paolo Bonzini --- MAINTAINERS | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 9410bbb..c7acb55 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -117,6 +117,7 @@ S: Maintained F: cpus.c F: exec.c F: accel/tcg/ +F: accel/stubs/tcg-stub.c F: include/exec/cpu*.h F: include/exec/exec-all.h F: include/exec/helper*.h @@ -341,7 +342,10 @@ L: kvm@vger.kernel.org S: Supported F: */kvm.* F: accel/kvm/ +F: accel/stubs/kvm-stub.c +F: include/hw/kvm/ F: include/sysemu/kvm*.h +F: scripts/kvm/kvm_flightrecorder =20 ARM M: Peter Maydell @@ -384,6 +388,7 @@ M: Marcelo Tosatti L: kvm@vger.kernel.org S: Supported F: target/i386/kvm.c +F: scripts/kvm/vmxcap =20 Guest CPU Cores (Xen): ---------------------- --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543262106244950.1553476625859; Mon, 26 Nov 2018 11:55:06 -0800 (PST) Received: from localhost ([::1]:38499 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMyG-0004GF-V1 for importer@patchew.org; Mon, 26 Nov 2018 14:55:04 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45531) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkZ-00089u-Qw for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkY-0004o9-NP for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:55 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:40543) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkY-0004np-Hg for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:54 -0500 Received: by mail-wm1-x336.google.com with SMTP id q26so19730124wmf.5 for ; Mon, 26 Nov 2018 11:40:54 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iNXNIlWn1noB3J0yzXjKnFHVWaXsUquI+hs9LhZiUJ4=; b=LLLa8S+dVZ54dTYTCJDSlMa7RtlXlywvYeGTbANbPdDLhYsa++U9jvV7U/IPwW+KEc xnE3Sg/c59dXf2JFtG+SbQeqqVj/+bLA80rbWYwvVrizcWtOIUvOfxcjPq46cyq7C46V vTuz0jcNFhfPoxCttt5Q2aaHzsy0RQXNNqYKW1LyqJneNf9HarMdGjmoizCoF3KpZ4zf 5H8ntIU+EpIxtU6Of/2nbynQGL3JSTl8eCPas8KQHvlqdFwlXV9BMjSkf2SNZPh2GUyk Uy1Tr9bJOS7LiRw8Wj8kTyCU89HEu/smhY0LHJLP2ciQuvBX9JZfLRYoU7MFB/xpzkdl unMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=iNXNIlWn1noB3J0yzXjKnFHVWaXsUquI+hs9LhZiUJ4=; b=V+zMJ7LlD52thSH4gBH+ddrIp2wEYRehUomw3y3nSUB5WoFcAeTs2Fwh3zqPzXoLoX kKoR4Ohn6K4jA67BH2D+e7xUgovrbtTYzPS9oK5AQaMB4A2l68Wu1bi6MazJmo067jcQ ZrVPhlpJbZQ1OCBgD/p3drI6CpfHv76/isNPIh8ysVVUeAfXwGA+3wQl5W/BAC3qG74w l4z85B+wDppPEV2Yrc6/BxIzkHSxrvbTm0CUcluT+ldFZGOqrfrl2EK9FWWZVxi/8CGL JjOkPxScEOd7zalT/Dx0xdZXvz2tLEzySL9lmUYr2i3+advOyOOSrQHNWA6TuF88zYx5 Nuew== X-Gm-Message-State: AGRZ1gJ7pxjGI9g55O33cS6WMEhu99OFjK2oLF9EE4VlyRSAVtYRmjvc CDzHZIwA2fmq80ijaeN+1gY9ZwCq X-Google-Smtp-Source: AFSGD/XnZEF3fHqp4+4tbcwpMhlwEVXCzFWMaUsi1wdhgb6NoVfrRseXV5rsqQbKF7D6pMpxqZSv6Q== X-Received: by 2002:a1c:650b:: with SMTP id z11mr25054468wmb.23.1543261253059; Mon, 26 Nov 2018 11:40:53 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:32 +0100 Message-Id: <1543261235-2834-13-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::336 Subject: [Qemu-devel] [PULL 12/15] MAINTAINERS: Add an entry for the Firmware Configuration (fw_cfg) device X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Philippe Mathieu-Daud=C3=A9 Step in to maintain it, with Laszlo (EDK2) and Gerd (SeaBIOS) as designated reviewers. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20181122021139.1486-1-philmd@redhat.com> Acked-by: Eduardo Habkost Reviewed-by: Gerd Hoffmann Signed-off-by: Paolo Bonzini --- MAINTAINERS | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index c7acb55..63effdc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1564,6 +1564,19 @@ F: hw/display/edid* F: include/hw/display/edid.h F: qemu-edid.c =20 +Firmware configuration (fw_cfg) +M: Philippe Mathieu-Daud=C3=83=C2=A9 +R: Laszlo Ersek +R: Gerd Hoffmann +S: Supported +F: docs/specs/fw_cfg.txt +F: hw/nvram/fw_cfg.c +F: include/hw/nvram/fw_cfg.h +F: include/standard-headers/linux/qemu_fw_cfg.h +F: tests/libqos/fw_cfg.c +F: tests/fw_cfg-test.c +T: git https://github.com/philmd/qemu.git fw_cfg-next + Subsystems ---------- Audio --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261776571847.5176776750693; Mon, 26 Nov 2018 11:49:36 -0800 (PST) Received: from localhost ([::1]:38472 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMsw-0007i2-I6 for importer@patchew.org; Mon, 26 Nov 2018 14:49:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45664) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkc-0008Dy-PC for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:41:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMka-0004qU-3d for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:58 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:51687) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkZ-0004oc-Ri for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:55 -0500 Received: by mail-wm1-x331.google.com with SMTP id j207so12412606wmj.1 for ; Mon, 26 Nov 2018 11:40:55 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=9UgGUhtA1rx7tWc3szDreRXuQM+QmUSN0VlrvDak5G8=; b=ILy7YOgaoKEV9+11KXRL5w7C8VXRmaCs0Z+mwdzLxzWDVlVhr+Y1+NzgI64DLHXLje IdEctPFyiH3VrTHxHi9s59glYnbX2/gkIUdDQyQZkJmSTxeVhbsTSgOZ5TjCA5ByaMQE cU2A7kqZeyRRB15SS30R+STnkBYyK3C7O6K29DL7Ff+t/HQAKTE8rf3bEmv22pID4tEm o1G1JPuAt8HbPWNH3tnRPlirOa8yHq82+JWe8b7oQCFj8gS0MtMb8y8chDZFnVW2jh/X +b0+G0bZg89lbs+SAv6dKKuex+olADVa2NbExp6tV4g3GFOc9LpUSgTgYSlNZ7U9mApy aRpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=9UgGUhtA1rx7tWc3szDreRXuQM+QmUSN0VlrvDak5G8=; b=V4Z1IcWGbm8HxUMXe/kTce++Y/pf5GOfsNRgGnG4oQqaf8MLFflipotAmthYRTQxjs gLJfDXEQEp8gGkRwnlx8l7zNaWvXrT2UR/5q025v3yjPgZvJlV9V1TRnBgFOK7NLZPp3 SK2AabIV9Tx69x34JJdbIDEMcfFV8A1lYQr9YBgeAqfpinQpSsfdMBazFCFzJ/azBfOa sr+tSWBdUf66JGZJhcgKryiC9ZUi0l1+BvzaOFJXz67G4bHkTcsHuyRGqRQWbJOMv0en GlnBH5bd1p/jE0O0qQbIyNeUeez9FSuL6zyxUsoSrIzHQCbqOXWi/s9eBDSBsCM3HLX3 xr/A== X-Gm-Message-State: AGRZ1gJKIfwFzpnd5jg0DibMP4h16UlepfKxhixu9Ph+QBh+L9hkqslM V7Oe2u8k/qeVTk9nYNaLz+NSoa8q X-Google-Smtp-Source: AFSGD/UY7c8BtkB9gntwHIQWzQ/3KieBqqJxZlHCOrVSgLP5NUXfnxZL1DJSc6F9XxMyjFOyan3JCg== X-Received: by 2002:a7b:ce12:: with SMTP id m18mr26133976wmc.31.1543261254294; Mon, 26 Nov 2018 11:40:54 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:33 +0100 Message-Id: <1543261235-2834-14-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::331 Subject: [Qemu-devel] [PULL 13/15] configure: fix elf2dmp check X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Roman Kagan Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Roman Kagan elf2dmp is keyed on "$posix" =3D "yes", but "$posix" doesn't seem to be set anywhere. The original intent was presumably to skip building it on Windows, so check for "$mingw32" =3D "no" instead. Signed-off-by: Roman Kagan Message-Id: <20181123090058.6931-1-rkagan@virtuozzo.com> Signed-off-by: Paolo Bonzini --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index 0a3c6a7..fc6ce00 100755 --- a/configure +++ b/configure @@ -5722,7 +5722,7 @@ if test "$want_tools" =3D "yes" ; then if [ "$ivshmem" =3D "yes" ]; then tools=3D"ivshmem-client\$(EXESUF) ivshmem-server\$(EXESUF) $tools" fi - if [ "$posix" =3D "yes" ] && [ "$curl" =3D "yes" ]; then + if [ "$mingw32" =3D "no" ] && [ "$curl" =3D "yes" ]; then tools=3D"elf2dmp $tools" fi fi --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261792546695.0578751195327; Mon, 26 Nov 2018 11:49:52 -0800 (PST) Received: from localhost ([::1]:38473 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMt8-0007qX-Uk for importer@patchew.org; Mon, 26 Nov 2018 14:49:46 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45764) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkf-0008H0-JT for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:41:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkb-0004qq-3k for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:41:01 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:35895) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMka-0004qb-SD for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:57 -0500 Received: by mail-wr1-x42e.google.com with SMTP id t3so20234591wrr.3 for ; Mon, 26 Nov 2018 11:40:56 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PkxRjo8pey14S4e5COodOneVIjytgf2tqUUeA9fuxsM=; b=L/Nrc6q2m/L89MZod0L5Bvr8GE5RZeK+bbYy84//Z0HORKYrzkYMXN7cxRec0Aecxx BdK+Rgs0AZ+9Mx8y9DBPg4hWoiSAy6kSJiWbfOjvbQonwmirY3QdvBsEBACVnuESIvSS 38RU0CMXtuYv47AtmBylz0V+UTZt0YhQgG3IyxCxGihm5hLi8OQ+Plq9iPYy0l/f/aku ypF6MHnHaB2evYLoxSKdG63AkAFRbL2CMhFL3rOWb1WyMfmoZfTa8iQowhCzIX8oGR/f qK7t8eW9hbs65n1TcljGEXPdgtMTux9cLQcvdq+RWMv9g+3fYBq6fUqx/arb3nDHHfYN cVwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=PkxRjo8pey14S4e5COodOneVIjytgf2tqUUeA9fuxsM=; b=NhvqCJjtDi3HpI+wwpNLvxDCgtpg7xzFlIw5nkR7bGrwr4KVSmHRjaBp0XslLMyAtz VnX3tyJYPI7mDdCx3jVuDw05nU7/tP3TSJZYcoBOPZYuuMHV6dwxIZpPvBy+Lj5TV4FC AFaAwH5Jn9QzcIr5Zy+YkO3h+uJJPB6xitNEkQanOGMDoKftGCRgR9WqYw2dWO3UBz65 TPTNgs+H+dMFHT6jJWLEW/LCtrrNjzeaI0GhSDfDBhmbH3Od2yUzDl91JghU2uCuqVOD /r0abQHwZl9fURZF82hmAB4m1b+CmB12S2VcbmscBBDn4e2k57Vxdqzio0alv5bUYdha 2uBw== X-Gm-Message-State: AA+aEWZ3NqquJEWlRBQFfSRuE3KxVQwJDBozVbrs73OEX7zik6A/ISt4 +cDpQZn7IgY2+TChcv5vK47a2cXx X-Google-Smtp-Source: AFSGD/X+l5Scv8zA00epqvodbl/Z7hGGOEfkE4YHmrQ7fpS6JJXzhkwyA6OKaiopeGAZ6DeeseceYw== X-Received: by 2002:adf:f703:: with SMTP id r3mr24319176wrp.93.1543261255561; Mon, 26 Nov 2018 11:40:55 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:34 +0100 Message-Id: <1543261235-2834-15-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42e Subject: [Qemu-devel] [PULL 14/15] hostmem-memfd: honour share=on/off property X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Marc-Andr=C3=A9 Lureau The share=3Don/off property is used to modified mmap() MAP_SHARED setting. Make it on by default for convenience and compatibility reasons. Signed-off-by: Marc-Andr=C3=83=C2=A9 Lureau Signed-off-by: Paolo Bonzini Signed-off-by: Marc-Andr=C3=A9 Lureau --- backends/hostmem-memfd.c | 4 +++- qemu-options.hx | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c index b6836b2..1c3579e 100644 --- a/backends/hostmem-memfd.c +++ b/backends/hostmem-memfd.c @@ -59,7 +59,8 @@ memfd_backend_memory_alloc(HostMemoryBackend *backend, Er= ror **errp) =20 name =3D object_get_canonical_path(OBJECT(backend)); memory_region_init_ram_from_fd(&backend->mr, OBJECT(backend), - name, backend->size, true, fd, errp); + name, backend->size, + backend->share, fd, errp); g_free(name); } =20 @@ -131,6 +132,7 @@ memfd_backend_instance_init(Object *obj) =20 /* default to sealed file */ m->seal =3D true; + MEMORY_BACKEND(m)->share =3D true; } =20 static void diff --git a/qemu-options.hx b/qemu-options.hx index f7df472..269eda7 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -4025,7 +4025,7 @@ Memory backend objects offer more control than the @o= ption{-m} option that is traditionally used to define guest RAM. Please refer to @option{memory-backend-file} for a description of the options. =20 -@item -object memory-backend-memfd,id=3D@var{id},merge=3D@var{on|off},dump= =3D@var{on|off},prealloc=3D@var{on|off},size=3D@var{size},host-nodes=3D@var= {host-nodes},policy=3D@var{default|preferred|bind|interleave},seal=3D@var{o= n|off},hugetlb=3D@var{on|off},hugetlbsize=3D@var{size} +@item -object memory-backend-memfd,id=3D@var{id},merge=3D@var{on|off},dump= =3D@var{on|off},share=3D@var{on|off},prealloc=3D@var{on|off},size=3D@var{si= ze},host-nodes=3D@var{host-nodes},policy=3D@var{default|preferred|bind|inte= rleave},seal=3D@var{on|off},hugetlb=3D@var{on|off},hugetlbsize=3D@var{size} =20 Creates an anonymous memory file backend object, which allows QEMU to share the memory with an external process (e.g. when using @@ -4047,6 +4047,8 @@ with the @option{seal} option (requires at least Linu= x 4.16). Please refer to @option{memory-backend-file} for a description of the other options. =20 +The @option{share} boolean option is @var{on} by default with memfd. + @item -object rng-random,id=3D@var{id},filename=3D@var{/dev/random} =20 Creates a random number generator backend which obtains entropy from --=20 1.8.3.1 From nobody Thu Nov 6 18:10:31 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1543261981847991.2372079355785; Mon, 26 Nov 2018 11:53:01 -0800 (PST) Received: from localhost ([::1]:38492 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMwG-0001bv-Cm for importer@patchew.org; Mon, 26 Nov 2018 14:53:00 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45765) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRMkf-0008H1-JU for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:41:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gRMkc-0004sL-GA for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:41:01 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:56082) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gRMkc-0004rA-3G for qemu-devel@nongnu.org; Mon, 26 Nov 2018 14:40:58 -0500 Received: by mail-wm1-x32e.google.com with SMTP id y139so19403800wmc.5 for ; Mon, 26 Nov 2018 11:40:58 -0800 (PST) Received: from 640k.lan ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id s139sm2412468wmd.3.2018.11.26.11.40.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Nov 2018 11:40:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nZxWPOVIAA5nUzN0gMSMfsNg4zzIlGsogMvMThAGWd8=; b=PXtEC9VnaGqfuVeWMi4z5nzmPcGb3OriS9uLiGOfAuV9opfhCyXEEbhZPNY4NLf9aR BMlCVR0r+uEzgk/DEaa23RJOUH/Dpfc2nicyVlc/g8uPbsLHONFc7Y/d42wJ2OAuhDhB NVYPtDqgqyxAMmBCVTXdVsgaq4KVcZUK/7CRH6pXA9iDfdo01cvsVG6OL5j4ydzHIqAy BUCf9wrb+clv6U5k9PxdkXiuv0ULWQ58vwi0A20tEAl3jFRJa2ZzZO8sICvia+GqeB95 wITMeX7o2Dd3+nb83Lhjquv2q9C5ezxSfzfsvMcC0fhvDI2ubgsAk7beZgyJLJYTfhi7 nVTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=nZxWPOVIAA5nUzN0gMSMfsNg4zzIlGsogMvMThAGWd8=; b=n9nrZ8WQcMWwWHf6phb4h+qCJDpKJ/YwZ/RBu0Yjvq6aMHA5bWS26o8/53tIQQpbVH h+nEB5fDkKMdJFwuLKs42GdIobXR/RCGCXPAUAxVX5a+HakLVGuWAMg7Tzt89lHEuhsJ G42PoM7fvncubXW7XjqVjGvD3x5RnNmJHJvphenXlQRBNEPZZbf4jdK7YTpDG6ZPo6s4 AP4VQopyYEuz+4EU6t/OP5kn6PG+ihKIg+Apt49PEk63aRad9BVAAnPhFlSdYJjAr7NU Hag+pK+P3MgRZUXznL/DLkN8nXnWX8ZlpTCnScjJrslkY7ld7RsKVvnL8pY3Hlds1MTg fRKQ== X-Gm-Message-State: AA+aEWYxkpmz5IBzg9k9s8hwCxniYLbofrP/HFthkYwpZKYMqKRL/p+K iaoxzSRfwfQ6yGiPL5JWcLvxlK1m X-Google-Smtp-Source: AJdET5dNDw/1CXp7601l5gdzkA3niKLhh4yNUM8w3YM/4sR0O7XI3YehP4svGKwN5pc7kfyb1M/K1w== X-Received: by 2002:a1c:b1d5:: with SMTP id a204mr25309845wmf.32.1543261256698; Mon, 26 Nov 2018 11:40:56 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Mon, 26 Nov 2018 20:40:35 +0100 Message-Id: <1543261235-2834-16-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> References: <1543261235-2834-1-git-send-email-pbonzini@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32e Subject: [Qemu-devel] [PULL 15/15] hostmem: no need to check for host_memory_backend_mr_inited() in alloc() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Marc-Andr=C3=A9 Lureau memfd_backend_memory_alloc/file_backend_memory_alloc both needlessly are are calling host_memory_backend_mr_inited() which creates an illusion that alloc could be called multiple times but it isn't, it's called once from UserCreatable complete(). Suggested-by: Igor Mammedov Signed-off-by: Marc-Andr=C3=A9 Lureau Reviewed-by: Igor Mammedov Signed-off-by: Paolo Bonzini Signed-off-by: Marc-Andr=C3=A9 Lureau --- backends/hostmem-file.c | 24 ++++++++++++------------ backends/hostmem-memfd.c | 4 ---- 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/backends/hostmem-file.c b/backends/hostmem-file.c index 639c8d4..7cd3a2b 100644 --- a/backends/hostmem-file.c +++ b/backends/hostmem-file.c @@ -42,6 +42,9 @@ static void file_backend_memory_alloc(HostMemoryBackend *backend, Error **errp) { HostMemoryBackendFile *fb =3D MEMORY_BACKEND_FILE(backend); +#ifdef CONFIG_LINUX + gchar *path; +#endif =20 if (!backend->size) { error_setg(errp, "can't create backend with size 0"); @@ -54,18 +57,15 @@ file_backend_memory_alloc(HostMemoryBackend *backend, E= rror **errp) #ifndef CONFIG_POSIX error_setg(errp, "-mem-path not supported on this host"); #else - if (!host_memory_backend_mr_inited(backend)) { - gchar *path; - backend->force_prealloc =3D mem_prealloc; - path =3D object_get_canonical_path(OBJECT(backend)); - memory_region_init_ram_from_file(&backend->mr, OBJECT(backend), - path, - backend->size, fb->align, - (backend->share ? RAM_SHARED : 0) | - (fb->is_pmem ? RAM_PMEM : 0), - fb->mem_path, errp); - g_free(path); - } + backend->force_prealloc =3D mem_prealloc; + path =3D object_get_canonical_path(OBJECT(backend)); + memory_region_init_ram_from_file(&backend->mr, OBJECT(backend), + path, + backend->size, fb->align, + (backend->share ? RAM_SHARED : 0) | + (fb->is_pmem ? RAM_PMEM : 0), + fb->mem_path, errp); + g_free(path); #endif } =20 diff --git a/backends/hostmem-memfd.c b/backends/hostmem-memfd.c index 1c3579e..2eb9c82 100644 --- a/backends/hostmem-memfd.c +++ b/backends/hostmem-memfd.c @@ -44,10 +44,6 @@ memfd_backend_memory_alloc(HostMemoryBackend *backend, E= rror **errp) return; } =20 - if (host_memory_backend_mr_inited(backend)) { - return; - } - backend->force_prealloc =3D mem_prealloc; fd =3D qemu_memfd_create(TYPE_MEMORY_BACKEND_MEMFD, backend->size, m->hugetlb, m->hugetlbsize, m->seal ? --=20 1.8.3.1