From nobody Tue Apr 30 04:21:32 2024 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 1543329549259801.1825579498593; Tue, 27 Nov 2018 06:39:09 -0800 (PST) Received: from localhost ([::1]:42781 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReVy-0005Hn-VG for importer@patchew.org; Tue, 27 Nov 2018 09:39:03 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35109) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTm-0003i1-Vx for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTk-00018a-GR for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:46 -0500 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]:51313) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTk-000166-AB for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:44 -0500 Received: by mail-wm1-x343.google.com with SMTP id j207so14987481wmj.1 for ; Tue, 27 Nov 2018 06:36:44 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.40 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:40 -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=xprJIO+4NLUMGQfS8niwGYeGpb77M/bLs+wqO0ZLwRY=; b=sUonLcZ+X+MYSi1RAb1P1O1ypfhU6E2tdGnQKf8cjURLLxErd1sE1Tkv3OUhmUnaCe oecaUljsG8UbY9g4dE+lT//rj5lGGOsNZ5KDgJV9GY6DXpe6j5in4yR7RdpmrIV7+vAx YxUxAQsZDJrroZaQX04pPaHwydxQ7Lwmz46n6byedZNmPlMbro5TiuxV8w2Wve5BrVmB DyXpSorjrh15m8EWD+rY4cjEfmnsyFxvUAAfunNYMFpa62qGUcDBBjUp5QONxc4CCUxj PWtp3J75yEwy3aGLcE5AB4/XmjJP26phaw0HIhS54ZO58D7Wp1zqUoepFdtdppy8ZtT3 9ocA== 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=xprJIO+4NLUMGQfS8niwGYeGpb77M/bLs+wqO0ZLwRY=; b=aUtfNtaAwFEEi+f6L8qjhwSN1PLOcMYnL0shS0VbyLLg1r4txhF92kx89v6/mtpzX7 Ov30/aalufOLosE9ryHrAcuqRj2ublPz1WfILlOewspOnXGTW6Pp1tuuAgAdsZLyt/yc a6RmFIglIaDtozdSDGsJCV/KzdJUO/7A86twxlwwmPqqYqrmxXBaBmZSIIMRd8wlKloM AH6WEDxdi6eLtCxxu8+/zfEIJr+X/YLC/35RWGRJ/UwUMbDrJU8NZXgIaERrqtcAFL4G 9tLyoxP4s3JHCqpHisDnehNfOsm9OHH+7GeGliUvYptVltQDKR3T40l5LpeSGMbo3f3m U5cg== X-Gm-Message-State: AGRZ1gL8i3MBCO9gozAtsHozJXv7REXEFPv2qdlY5SXBJAxrJ9N7xkrq Ylr5QUuIu6epJFsqehVbc/K0xFFT X-Google-Smtp-Source: AJdET5f0dCIQj/+SKRoHexm+RbtV3wEMf3SdSJiqFCYLPcTLwJKWs39ayvuDG735joJdIEXU56rcsQ== X-Received: by 2002:a1c:ce0e:: with SMTP id e14mr29311045wmg.53.1543329402373; Tue, 27 Nov 2018 06:36:42 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:23 +0100 Message-Id: <1543329397-48407-2-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::343 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 3d6739a..2724800 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -855,6 +855,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 @@ -1247,6 +1248,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 Tue Apr 30 04:21:32 2024 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 154332975595069.60816131889499; Tue, 27 Nov 2018 06:42:35 -0800 (PST) Received: from localhost ([::1]:42800 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReZO-00081U-Cx for importer@patchew.org; Tue, 27 Nov 2018 09:42:34 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35127) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTn-0003iP-MK for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:48 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTm-0001EE-Kl for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:47 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:40531) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTm-0001BX-EL for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:46 -0500 Received: by mail-wm1-x32a.google.com with SMTP id q26so22370363wmf.5 for ; Tue, 27 Nov 2018 06:36:46 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.42 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:42 -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=o00RyPQrgD7W+cBjGDdz6NkPccACBJS6N3gAF8OLUJzJ+BPa3Jlq6MdRSwUx+8FkAA uaexovFF052caNaPcLRYEypbLfve1AMxRPwKbcaPwvvj39ePAoVXUDMVLoLMNc4P3ryl Jir4EGwFaHhRK3Q2nLyO3fas2gw6k/ULhvyzPCw8Nlb6XrNiOx1CqI2veSAiKn2N70j8 vpJb0aApJ5Y8Yn8V5n1D3U2PMdRPmqbMDN0C089rA9aI9HEDsLFZigV57GoX2FItNWvm NVfm6KpJgHm+IAYgSCbP8oqXnnvrOpQHZTVqB0HcVH0F0EjUpel8ZPdfPwjz0eocbtRf B7Cw== 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=lgwCRlXDk2P/ZJvX9T00arJ48GD4kL8w1Ho0XquAP0rPUWR9/FnDjfyA/+tf4Ci5Oh Lxzkk5PBNUGVm2wkvzj9ntEm7O8n03DmI1cy8BPIsApuCPyG+t2jUHLM4VYFweFktogR bjGf8qp0NJmGxeV7FUmpNCPcXroG5sbBMBmxl4rqGl4Is5l/zLfaAlGInHyM5npOFiGy SpbuM8TIzROLbQhf/xGqI0J7JS2gPzCjd4AvVTMhRyuOv+VJMUZ8hqgbpZjWl7erswqT uOcsEbxDanQLIjBIq0ioyJSY4uBDacqvT/vjPWaRpemlqNCRTQx9fO9LRPtNXeY2efrX prgQ== X-Gm-Message-State: AA+aEWY4TmgGyYxG6mqmBRWrpjgx5GX8u34OLyHxcMolQ1PIYcYD+6MN EYxMvZMgK2BS5N2yEgxXDWBNYfuq X-Google-Smtp-Source: AJdET5ev1uAa5lInyrCBI02S9ZqTC6Pccq/rHZtS0PYh467yNgw9g+b1WaDWLqkWUutQM0etpFe+Aw== X-Received: by 2002:a1c:18c:: with SMTP id 134mr26438952wmb.94.1543329404877; Tue, 27 Nov 2018 06:36:44 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:24 +0100 Message-Id: <1543329397-48407-3-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::32a 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 Tue Apr 30 04:21:33 2024 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 1543329554441571.9835800385606; Tue, 27 Nov 2018 06:39:14 -0800 (PST) Received: from localhost ([::1]:42782 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReW2-0005Ju-8D for importer@patchew.org; Tue, 27 Nov 2018 09:39:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35146) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTp-0003jt-M7 for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:50 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTo-0001Hw-MD for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:49 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:55851) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTo-0001Gu-Fo for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:48 -0500 Received: by mail-wm1-x335.google.com with SMTP id y139so21952796wmc.5 for ; Tue, 27 Nov 2018 06:36:48 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:45 -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=KKkCvVVYmnulUMb3kiw6V31Am+Hd6OHlQZfu9gsiv52UvfwzYKQA/Rt8lbuUWZg5wj LtEfFZ+YItFvn8Brw+3MoLl9EYubgAmoe2BVWa9el1ZL8o5fS9+bXRhjciEaXEYR+nJd PN6c8MCrNxUkG6ipHmY/arRpduqQriRa1sv9Akxf+7hsVdu60mJ0Xpz8H8ME6MSlyEnS /RM/xJ5rnelynqgHNFYWwi1on5LG1AegOl4BEcFgkr8ekpnNvIA1xJcboWFtg6VWnyv/ WHXy1i8gjYFrQie+nHZOej0OZnVJ6FcMWLtmsMhfLskH3BELHgmdS5DcuLz3IEmL0Bpb nwVQ== 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=uO7vRa84RP6Uqinuj494v3fC1+7QJ7S/pqgOwQVSaEdoeBb0qMZtvqA4i3UJzRLKgI X6vJqWSkRoqRYJ/KnTcCeP7gSbPc9wVVv6/apStRb8HX2a3AT8VNH/s4AoILaZTjkIfb t4SMWiei/aYt3RAo8TUTmOzkmbagvDWTFvvBAyliqpvl7o0j4V2Hpwo07l93drcCgggQ yTQ15QcePZk3DsUG4caJOEQBjwYnk2id406qjLSJEEeaQ0bL24Oi/VCstnyHqa2l8exr Orx+qcd+XJzzn/CBxbpmKoGum29PkOFOe9M1w10pllZ9ymDl/vI++LxvIehXXmOn2XrR rqaQ== X-Gm-Message-State: AA+aEWbzhA3tjaJWJBzzIhKpR3Pj81U6yojOhJfc0MhTz7jR4T3KWheG X1N9w1angu74PsZF7Ve5gJ1DCiE/ X-Google-Smtp-Source: AFSGD/WSuhUFe7rdZ0B+bJmI+9LwzrSWC0AYcEUTkoP2kcaqRdrtXy/9ZuaEusNx+pgEENzdmWuW/w== X-Received: by 2002:a1c:f0e:: with SMTP id 14mr8831104wmp.37.1543329406942; Tue, 27 Nov 2018 06:36:46 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:25 +0100 Message-Id: <1543329397-48407-4-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::335 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 Tue Apr 30 04:21:33 2024 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 1543329702797431.1747221931978; Tue, 27 Nov 2018 06:41:42 -0800 (PST) Received: from localhost ([::1]:42798 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReYX-0007P7-Ki for importer@patchew.org; Tue, 27 Nov 2018 09:41:41 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35192) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTv-0003mi-3r for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTq-0001Nw-DL for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:55 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:41126) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTq-0001Lc-5d for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:50 -0500 Received: by mail-wr1-x42e.google.com with SMTP id x10so22935417wrs.8 for ; Tue, 27 Nov 2018 06:36:50 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.46 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:47 -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=tT7ZYmVjpVsAtQ0e0k6tMdMVrsM+W+6cRex5z7zlJUo=; b=QXnOK0/ukr1F12M9PJIS75MvraGhdAHOpYUQJOT7diy2Ng4ex8+7qZ5ehNvsH0QrHT AWRHfTPaDv1XCZbkzbBRFOPU/yGVzD8u3nhQg+yViywevipZobljWfKehZf9zV8+q6r5 TCcCZdySfT7p6bMv/ywKzXoy0THqRdHysriwdNFa7Z4gF6x6kBDTnZfMjGFPq1B4hRmz ajsHubgbYCUzgFANHb2A4v2FVT6sfIP0ZpfPREURaMmURCVrEsw4wU1SQXx9IIyPIP4D Ezukez3xHZi/zQpidwDbfyYDBm5ggXq9VbhY4ZdbFmhTrZhaBWAL5mUa096lGFMY2tmu f4iw== 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=tT7ZYmVjpVsAtQ0e0k6tMdMVrsM+W+6cRex5z7zlJUo=; b=GX8IKQ8aIeWVSDWdBrdmv+zJOmQyJupxKHLRUgo9+ZVoaN12T7hetr1J/PTPV4Ig4Z g6TAH3LRFQjDmg5MTqs4PhY8otnauXEUs04cop0/ji4axHVt/J1uP7PXdszp++WYltOJ DYAAD3uMCZ/Ft6sZI7Knzky993A3Vj8TXDdNcqWLz5v+s5yPBuSp/c67auJQgQTNTl7V BJjkNhfH2bzk1lbWyOhA9QO9cKXvQfd+6yUJ8zXwa21mf5RZ1+ya0OxjX7aySFmw34UY UZbFCkekjKKQ5oDocpL2wOA3n2mtnDa36l5aesNuit/HRlQnsLpyvp5ycDBsM3415wK1 VGXQ== X-Gm-Message-State: AA+aEWYKJaxDuBmr1SQqKGVhzZeBMk9xzfK9G9/NTKsqvCABCNfAPUjp 6zcXvKzCLfVNblr1ADe7vHRqJYnk X-Google-Smtp-Source: AFSGD/UllL+puS2RqVqEoNAAoUCz4MAPz1zSDne0XN0Xi501b/vA6xW8RYr+OrVey2tg3HuHSWrtVA== X-Received: by 2002:adf:94e4:: with SMTP id 91mr13641596wrr.322.1543329408516; Tue, 27 Nov 2018 06:36:48 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:26 +0100 Message-Id: <1543329397-48407-5-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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 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 2724800..b2401d1 100644 --- a/target/i386/kvm.c +++ b/target/i386/kvm.c @@ -1266,7 +1266,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)"); @@ -1276,8 +1275,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 Tue Apr 30 04:21:33 2024 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 1543330182552923.1444209273438; Tue, 27 Nov 2018 06:49:42 -0800 (PST) Received: from localhost ([::1]:42832 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReg5-0007oO-Od for importer@patchew.org; Tue, 27 Nov 2018 09:49:29 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTx-0003no-AU for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTt-0001R1-2M for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:57 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:53916) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTs-0001Pj-Jq for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:52 -0500 Received: by mail-wm1-x333.google.com with SMTP id y1so18762685wmi.3 for ; Tue, 27 Nov 2018 06:36:52 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:48 -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=nN353qoqpQQbdce07Rwwk9JjSJfTwiJPvhzIcRAmQQM=; b=KzBrjzsHDrqrW6oRf7f56/SY5IbCu+5/1Ur1x2Ep2CMbhtzDq7/Vo7bqQGpE2eBxQq YqcdjpYjWLyiK4gvHgPASz8G0QlSjkn8BFid0qWGctrRZog6Ntr89wEpnV4tghdKmwXh eB9PPCXu3+MipYBub4c2xKbyBAauQf0IbEsk2JhdvLaHrLnKSMqUmahFVAcs1IbXNGR8 EuEzwsk6xKsgeVVNuwOHHTbS+DXnzxZl3OJW5O9Q+BalypbMX1EmpgXoL28L144yaNZY 6Hc+Q1laKOMREWK0Vb3z9WpkTzO5R33iSCbxQWX3F2sYzHG81PkHqUfaVW52M3KH27BZ huwA== 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=nN353qoqpQQbdce07Rwwk9JjSJfTwiJPvhzIcRAmQQM=; b=WrzOx89IxSnFoc74Zo548Il9TQzKKgli2+JqX0X2BYdKqglpNUEmqfELKrgg4uDGYI 9xPs1Cgl4NyTYGLFOsP5jSOAFwCoat1lb4eD7Ojjmp/T2SH3ZuXmbx5GAomSKT/ZW0qS sCCv+Y7IxWRWaonomuVM9N3BXukLi1sa3CYkD6+6JLh1akfbobUgSfdp3QJVQtolY3L9 X3QcpQjiQ29+H7wdqK7twvsrwQA7rkX3M21aA939LaaiCAUYed5gaZno6bD2GqUmFhDJ 9D+YOccUWS1RAikwHrTZvsB7IcM3c8sCQsnb6AyPQFbH9Q4QRzVpjwm6ByfZxeNXdoxB hs/w== X-Gm-Message-State: AA+aEWb50ac90SYTJA5+2Ce+PbJA2sXMD/wmPNu5eISeNJE3kjoc4zJE S+gZPamnFrUTvdUPJ3v2tj4B2R16 X-Google-Smtp-Source: AFSGD/Vx+IShJebY+MjdRlkfS/pPfOce/9VHckKxGfWZ1gK0DSHECvtjfqZLjWScOPuy9+O0HFiD3Q== X-Received: by 2002:a1c:9e90:: with SMTP id h138mr23155666wme.17.1543329410654; Tue, 27 Nov 2018 06:36:50 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:27 +0100 Message-Id: <1543329397-48407-6-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::333 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=A9 Lureau Message-Id: <20181114132931.22624-1-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini --- 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 Tue Apr 30 04:21:33 2024 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 1543329898395659.9028941307422; Tue, 27 Nov 2018 06:44:58 -0800 (PST) Received: from localhost ([::1]:42810 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRebg-0003PF-El for importer@patchew.org; Tue, 27 Nov 2018 09:44:56 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35222) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTx-0003nm-AA for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTt-0001TD-Dz for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:57 -0500 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:35989) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTt-0001Qg-7a for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:53 -0500 Received: by mail-wr1-x42d.google.com with SMTP id t3so22937214wrr.3 for ; Tue, 27 Nov 2018 06:36:53 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36: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=Nk6+a4DawL2N1QW/CZzr0Aj8iuE6PQzwt+0dEITLfWU=; b=tr0vRO4Xkjgvy2OkOWjl8c8jjtnOKr3simWQi1Bjw8+rHiLOp5cNhSlK4hY5OvMOeH N0k2n9+kew78UJA5GOSr1Px6m42hldrQyGqOHGiWm1/DsFUE8t1D7xVgR+/vHM4j5NDM ysoPsTkulEOfHHwxcT5S17zhThty1GUMPRDhj7ptafFeDBUUfns6FJBh64KBHDR7uM58 g8ETvfGbRw6uArmVocKe3yLOhTPm5WHxeaP8vISIq0clnCjur6Nc00Se6fee/HGe2Cb6 y24nR2Y6yyuIvrEQt2z9FQ3PAjvQ0GGv3kULoha/7I+vB3HhBgsYI2MWkYw0zHdXZyrW w7+g== 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=Nk6+a4DawL2N1QW/CZzr0Aj8iuE6PQzwt+0dEITLfWU=; b=rM/4WNbG7h3G9M9KEYXFS14pmyKHJgQ9KuKdB19pi5FFA2IpBpbGhnYka8m1hmlI2t 0uya5U0A74wEKrpkEnOh7+wKgTKVvB3RIm39FPtrka2JF7/SUyCErvuPYKmA3xv+IQCb b7Lt8z2P9AHBHyefS7pMbdcPnddUYvu6qy8NeeRUZ/iRyK4qjcJbB+KoeR82im3TIlbh ZUeZyKvlkzFTKtHU0PNgnp94/k5pplJKotuhhflEHk3ejVGmnIhfWyoVDIV0hhVIdCfo zXt6pKB0TyQF/46ZDfwtJKg/SXE24Ld9f4u1Rjwn350cIP+4c/IbVQ6i70JBadCSFgra o1cg== X-Gm-Message-State: AA+aEWYXh/pPta9abo34oOJhyVcZxcsQtOidPc9haPoUja+Ssxr+wrZW VgNWiQuGaKhhR0Gi/L/gKhzlcNEs X-Google-Smtp-Source: AFSGD/UrHbOYPPp+eISwQEkMpyVfHEf2597zody9fDrpwyPndjS75EkU3xn7zVVCZdUfpKmsonWhrQ== X-Received: by 2002:adf:9246:: with SMTP id 64mr12794856wrj.130.1543329411709; Tue, 27 Nov 2018 06:36:51 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:28 +0100 Message-Id: <1543329397-48407-7-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::42d 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 d6fd95c..611d887 100644 --- a/vl.c +++ b/vl.c @@ -2250,8 +2250,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 Tue Apr 30 04:21:33 2024 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 1543329582512159.1205652119155; Tue, 27 Nov 2018 06:39:42 -0800 (PST) Received: from localhost ([::1]:42783 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReWa-0005lM-Ny for importer@patchew.org; Tue, 27 Nov 2018 09:39:40 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35220) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTx-0003nl-9i for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTv-0001Yq-5z for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:57 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:36380) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTu-0001W2-SA for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:55 -0500 Received: by mail-wm1-x32a.google.com with SMTP id s11so22522500wmh.1 for ; Tue, 27 Nov 2018 06:36:54 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36: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=0GwnhoKC9DgoDXTExThdgd4wTF0mzwWpZtZn1sqxqeg=; b=mX61XQO2PwxB4dkR9zFBBfAYH5xEbfYoo0IhllE6zB5eODuFu6dfz6a2mgFiYi2987 W33OG1sLiGElhYajUKaylZBZZ7BoT57SQQtuGOtatQiHFcSCmjC6stfnnCwZv1R4YRbB iQdbRZnpIRBBXYYbvAB06x5CNNJ/PZXzmwKBoA9xe7zsxtwqwO8M60nOYLH3CdQxsZkH KN5Oc3qc6zVXQbv0BbBmXYTMADdbZIa+On9RX90SjiJmPUYkt72pis3N2k2FTz1MmT/n 6Q4PEqMvqPpEX8ceejjvHCjELcZbkKKNHrpVlVnmwCDqL7XKT+buizEEu20uGjvBmbtb jdtw== 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=0GwnhoKC9DgoDXTExThdgd4wTF0mzwWpZtZn1sqxqeg=; b=ohOI8U/SU0wXlasD4fhtTzXveoftdAuDqXAjcj84QQ7GROK0mM/vrAFFIccl/hCKZh EnUysSKKETEf2G9Nj1EuhwPpMFH0JEjkEImTK3QsvKd9XRydOnPkYSwMLO5+MFX/COsB ZE4juK3HIHdacmPHBKylM6C5pNZPOu/GLXBP8d1jRmkxiL2xMzZcnns1VnOQu6PGrdHQ 8miCThm/jrFqPJtj0J86CY0LpmY98yFfQsbJ/kdLRR3DsLt10qG1+SONeHkvCIle2R+V U5DjT1D11pJeI/WliCHSq9mJ6ejvffh/fslxFdVB8vXZs1DMd0MAGYP3uts8sYu4Qv8P tdxg== X-Gm-Message-State: AA+aEWb1bnCcJA8fOfGldPbhobY0eTH1LWUJilzKrkd1CF8um35tRykc Td1ptQ9H8jaUWSXLas1tKCYzX2jN X-Google-Smtp-Source: AFSGD/VrXE+FvrfOjcWowGFGiRgcVzi2DJ7o4F6wEAsZnQho44ehBLa/e5JlY0tX4gA7qQl+ZhvUfA== X-Received: by 2002:a1c:8d8e:: with SMTP id p136mr2043916wmd.74.1543329413329; Tue, 27 Nov 2018 06:36:53 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:29 +0100 Message-Id: <1543329397-48407-8-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::32a 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?= , Paolo BOnzini 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> Signed-off-by: Paolo BOnzini --- 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 Tue Apr 30 04:21:33 2024 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 1543329735431334.8824676287086; Tue, 27 Nov 2018 06:42:15 -0800 (PST) Received: from localhost ([::1]:42799 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReZ3-0007kb-JJ for importer@patchew.org; Tue, 27 Nov 2018 09:42:13 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35311) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReU3-0003tb-0o for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTw-0001dz-Rv for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:02 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:53908) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTw-0001an-KC; Tue, 27 Nov 2018 09:36:56 -0500 Received: by mail-wm1-x32a.google.com with SMTP id y1so18762922wmi.3; Tue, 27 Nov 2018 06:36:56 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36: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=DU2jGJRSTJW7u+4M3qLdFBif5WGpl2dOy1NtYgCW/Yw=; b=WeUYCGgZJBWrRtOB5gTC0duFAXl+g/M4KhDmIQs//jzBX9m/UTOkhjkycfSe4gyuxc N5i8cX2QFEVwCusx95sxFvUD60uJwZjVJKWYjbUecf5C7wq1NEASVhgROjfn66GXI4+Q LSn5OlcW0g1F+oyT19cLEHWeGs0ZDfPMIq87PZZqf8vNwp8p+2gG0hcp9UPtZU601FA8 l7ayHPMftlVsdcFFgeZolTKJJBfGgKFhQak1TJ00gaE05f3kP0jB43lgQsB6dPXdvJfo prlzoB6wJu6qNn8wJtIr+OUXh87aDjAqf7sGbNv4wduQZpe4Qnn4+QtTpLDK6iQig7se 5G7w== 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=DU2jGJRSTJW7u+4M3qLdFBif5WGpl2dOy1NtYgCW/Yw=; b=URihFbMtdE4Ldow/JD9s2Ze0aV8AcMi2iDy8A5DPyJJ1b5jk7UypySn3T+7tAiwjLo tFaptvG0oCRpqSGQgSGyh/XQuyZCI1SKiZyJrLLscuAOOh1XRCt+afSq9OIiQLs3PLhb F4nOAmVKjerxyQVLneu5P5OGnTGqfYDxfvtDqplFVJuBEvlovm+GAgimi1VTSWCyursq fMGC3ett5KN3S++RukJqhSUkgGckUzfW/LvZJHcdQcxUtqfgAJznyeQnJvG+wK3zeTAO VAtNrTKP0rYZdHfBCJZxTN2yiHNkMyAdHsgscwa3yOwfraerJHxSsj6r6cYhQmEdYHjP N3pQ== X-Gm-Message-State: AGRZ1gL2TuQE5rpcEW36G/5t5DBa0IN1D6RobTXFvwvdHPIHz00mQFeq 2TA1xRTQ0H9Jl4SwmRMUYoIaAZt0 X-Google-Smtp-Source: AJdET5d5CQrQx36nPdPdVGjLWD7Zfcpbutcv83PssoK/zWTEL2LEWRe6ObHPreGg+z2ZQIk2UQDdCw== X-Received: by 2002:a1c:7911:: with SMTP id l17mr26196895wme.57.1543329415059; Tue, 27 Nov 2018 06:36:55 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:30 +0100 Message-Id: <1543329397-48407-9-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::32a 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 611d887..a5ae5f2 100644 --- a/vl.c +++ b/vl.c @@ -1523,9 +1523,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 Tue Apr 30 04:21:33 2024 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 1543330057334860.1679992722044; Tue, 27 Nov 2018 06:47:37 -0800 (PST) Received: from localhost ([::1]:42825 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReeG-0005Cf-9X for importer@patchew.org; Tue, 27 Nov 2018 09:47:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35258) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReTz-0003pq-Cm for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReTy-0001gU-KM for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:59 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:38806) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReTy-0001ex-C0 for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:36:58 -0500 Received: by mail-wm1-x336.google.com with SMTP id k198so22540427wmd.3 for ; Tue, 27 Nov 2018 06:36:58 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:55 -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=TFQsTm/TMpK2XIAaPOJwI2ZJ69Ijz9PAEVUYDo2Yy5i2TJUaMHrVsTwl7RdE21Ozjm Jk3JJtPBMg3WZ04g38jKhlxcmphiRa55ho7TbQ8LasdRcGD+Di3FLY6K/faUo+pz9HdZ kMefYcNfm7fgBD6Wi6ACQ51rjPQ+CtV1OpXJtiZA6+WtRzi6c4RpmUNjRgyQ/iBpqxvo FoLalRn6mPoVd2AD1vHPyzPO4ex9y2yLIa35Ve5AImAEv/C6GMZAJm5t+JBs18A32v5a EXo6iHYHeqtMMpmUETa2A9HaQV9+yenTNnJLY5yokIN990yJkd1AyM7uKyJ2+GVNY+c3 FLAQ== 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=NSQyde3lP3Vt9jGXO7IZD3MXf4nwpM00UDJtd2nr/C7WWRRfaMLGasqNmarFwOofg0 4UiKOyYuATortW1oWIVfvaxtdtQSRNLNFcXaahgKvO6NJDn9u4q/o5RSsfeeKAVBd+vy /TXvzM1/k/ettc4aVZ13eYxc2p78MgfP1gwhP4UKIJ/BmUOHzZh+jXqqdFvwBVqCGAHN z4K7kkBgk80CUvhZ/BPvOKVQRnyORBNkiIOIubjjQonKCm5ln06CqG5JgGS2l9ISqoVM 6qguXXqU/CxKil02HTXRwdHIGLvqzFQVgqLq81G1ykl5GE5Nv9N0doVzi/RIb7rSdaZx IwfA== X-Gm-Message-State: AGRZ1gJ6/wYqx/ukZWEiFGQ7hbDvuZPKPBmCPo7pTV5uZosA3RXFEeIJ 3Uop9ZfDtj1FeKET2bzVD6I7qmWQ X-Google-Smtp-Source: AFSGD/VZ0dzNCwsL7hZR0BLfienTX1TNFgNB5SPR4Pg5S1nBOynDgnbanedkUe6Ig3NkExHqZzgbRQ== X-Received: by 2002:a1c:1849:: with SMTP id 70-v6mr27471270wmy.110.1543329416767; Tue, 27 Nov 2018 06:36:56 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:31 +0100 Message-Id: <1543329397-48407-10-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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 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 Tue Apr 30 04:21:33 2024 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 154333028731347.836132898915025; Tue, 27 Nov 2018 06:51:27 -0800 (PST) Received: from localhost ([::1]:42845 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRehy-0000ZE-57 for importer@patchew.org; Tue, 27 Nov 2018 09:51:26 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReU1-0003s9-NZ for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReU0-0001ku-In for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:01 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:44191) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReU0-0001iI-BL for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:00 -0500 Received: by mail-wr1-x443.google.com with SMTP id z5so18625415wrt.11 for ; Tue, 27 Nov 2018 06:37:00 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:57 -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=ppLMKFRseqncX+OnBovyz+5tiM2GNcKlHLoN+rrovMZowivN/ceuhE3EQdyn47OoL2 vys6rW7Vl+4zbpbrH8g7+fDVX8FoiawTWQnQ+22EqmcolxRqs8X/afEqd1MqLhMnJ2oc iY++Ltj4bX7iuxVdaO6Ui5TjJEhOb/mLIiyLbEvP8yVDVywQATeRAzQs1djts6s/QvYV 4bbWcsbIVOgUOBm3nfD+0YlsKkeSoHOfEAQMyp4Mnw3K7pVMuSwi5nGxljQpcbnOLSQ1 Mo1EJFrlOCBn3Cvs/h2nS706KdShJhTx9sf9QQN6KYz9QyPu/CUC7w/Eds/GuGCFAUd9 5i1Q== 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=jgL0vTliwDUNh0HvHcutAppIKq8WUXtK1w7ACek7qQSmix2+AfY0xobgXlOWbUky5b cn6vFIJi73WkDS9MGylTJx09d8coMxhI1/o1da0DcZEPbn32Z167tdrO9AZSqxTg3Gfw yk/qJhjZu3xRqg4cBmZv4D6JN7HG65qJrxdcilifiOz9dHqClVxCFa7pEs//C6oDWubj wGR7wfd4A4re+gSjuDj0OIy5bzrT+MM2K7ZGAe4R36cu7lzgQyAHL1JIDH1iwVs+IO49 r/loTDTsJ6f75pY6tIQz0UmHWrYuK9s3hNXGHMXtR8oJNrxuVAa7W8ieggZBdK7PD7m/ ICIA== X-Gm-Message-State: AA+aEWaFatHUKPhOUPPemrqFZ6br4NG7C3qOGrXH6N/hYtrt3QaTK3cL 6jyhNPSLnO7nCywOTcUmJIE29A01 X-Google-Smtp-Source: AFSGD/X8CDrUwNoWbS7TSwKot2n8717wFghbHDbDSAxBxNQXaM0zQDwG6AyL88PJWkIfSthk3GaLdg== X-Received: by 2002:adf:8b83:: with SMTP id o3mr15700002wra.81.1543329418680; Tue, 27 Nov 2018 06:36:58 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:32 +0100 Message-Id: <1543329397-48407-11-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::443 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 Tue Apr 30 04:21:33 2024 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 1543329853543125.70361449544282; Tue, 27 Nov 2018 06:44:13 -0800 (PST) Received: from localhost ([::1]:42807 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReat-0002SM-At for importer@patchew.org; Tue, 27 Nov 2018 09:44:07 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35314) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReU3-0003tx-A3 for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReU2-0001pO-GY for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:03 -0500 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:37258) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReU2-0001oC-7u for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:02 -0500 Received: by mail-wr1-x434.google.com with SMTP id j10so22939362wru.4 for ; Tue, 27 Nov 2018 06:37:02 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.36.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:36:59 -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=iCyRgQ7r6DnLq9BeLMQzIb0neghF2+tQWm5hcGwP+affiQ0+MprKj3XCpSOcCIULjF Gcam3bp/F3X9ad4OYB4RSpMkclfFM8oqPXrXTRHUC/I0sRz6xQ5N2DLfGy2OFG9jYB04 qXcIWV4VEW4XJ+47yyn3R3bupzpPWUJ6MI8k6+9EFMJhCdF/9/WK3dPfGD+Z0J5zqcED Iz/ID0srfSM4gmKzxMkp+1g8z68ngU+7h27yOIpNsL8OvPh6enVJVs7fUDec2q7pcn2C 8dteBhO9Em73FGEpsdfRc+PJcau4jFJV2hT8CjQ5Gj2DpOKNcJueZBR84Q9/fPxNABX/ P8ow== 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=WU+a0QolKNGmh/zrCYqvy/Y96kZDfiOkgg/Bp3UQ4S8qg6u/ygqmPBKvUKz+f5Zk+z 0j+/klG8PAA2h3sYm7NVnC4nHt7YPbVUzYQmuC22nSFmBdAHTNBt5xy8/dUbuesiGNeN Ec9T6clJz64yHm2/IhgKLOWFEUNQ461wpdejr26rtlgCAtdZTVmeYXhtewCftA9CMQng pUmCTduLQIppCiQyRmsNkOC/Aw1W2j9QBg7b+VINzCDDzmWfxv5MwfeVR86vo4GFCSPA gblAXD3cqwOZKO7xRpR9SCBqbaQrsE4sLco0gucEd8UjhQQSqmZiGvPlq1E4gBVIUly6 KcMg== X-Gm-Message-State: AA+aEWbjJBEC7RcEaTiUsjk0BOexoTkzkunCvSh4XBAmA9qcgGuX6n4i 9Lp2Aw6vG43kbszWvCxI1UBXW/k7 X-Google-Smtp-Source: AFSGD/Vsd8K0IS2NZfiHETS1VqTgeqarXWAj6ezvFgoQqXPZXFmDX1TlUoZFZYeUggZc2QJvPjIJQg== X-Received: by 2002:adf:e509:: with SMTP id j9mr29385851wrm.76.1543329420820; Tue, 27 Nov 2018 06:37:00 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:33 +0100 Message-Id: <1543329397-48407-12-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::434 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 Tue Apr 30 04:21:33 2024 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 154333041518953.559727598357426; Tue, 27 Nov 2018 06:53:35 -0800 (PST) Received: from localhost ([::1]:42853 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRejw-00029n-7V for importer@patchew.org; Tue, 27 Nov 2018 09:53:28 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35383) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReU7-0003yW-Ap for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReU3-0001rP-Um for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:07 -0500 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:39808) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReU3-0001qF-OE for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:03 -0500 Received: by mail-wr1-x430.google.com with SMTP id t27so14978424wra.6 for ; Tue, 27 Nov 2018 06:37:03 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.37.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:37:01 -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=gm7juWkCTgOI5JHAg5sA82xE4/+38jYrXE7+utYIkzbZipwwYawP4va+JTKyrmTaOP nFw0r3aJXulhOhqZ+WCUdwB1UGDUkSrTKxG2kySAu0XQavSKcl83eCSfd7tE8KarT70G LjQ6ueRUdixqceQoKln4kXJGTQ+cEwfyQZnB56vZFkT2mICC251mpfixy3qNjURSnYy6 YjRzu3D8N0rNO15iISZmLvlbVTlMyBvMylN/QWLtju3BudW9fSBrHZRqwfmOiNrKSCqV qwmlzeJy55tf9e0gMxNmYSiDvHzQ790eaY1LLbaB/BfHzeQ5MuMjnSaEdXTWKGvzg3BG zWTw== 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=W/kpIgkW5xJHBFu8NH4gOsOsuPifmKJ0cdv9MSrLSHVT0phi9r8GbTe8cgQvL1RDUc B5+diEvy+GonXaMTnJ4tH+b5PhzfWHMc6d2o1eZfZGFCXCTH6SkpWlwK11sMyeIW6Q+S +cOPfvxbBQVRqLUH+TZ8GZB0EWf4zOFhoMb0HoW0rFNRe1/g7ao61pvZHNCAwaJkrer2 iy3eDaDklYFCBekYeUdWdPBj10b3ed5cF22v5OiyB+Dzh8VRQxg0HhoRR///yQsDNRm+ IT/MHvElbjLFdqhOzfdZj0lGzkl6az1dTzDVfTm9CRpmG0956ue28cLFj8kRqUlbs7aJ FFmQ== X-Gm-Message-State: AA+aEWZy3eV6HA2L2speyQ8zRFaSO+CpexpPNUvqFlzhMEokxWCMhZqw XrESawYAKjCkILrH6gNSKRTgR2jc X-Google-Smtp-Source: AFSGD/VCPFiLpgyOToEJQCcqyJHBzgV71PKs6kLqUWIGCnuYUlBfHH4k2ioigVq4l6pcND+2k8/PZw== X-Received: by 2002:adf:c7cc:: with SMTP id y12mr20430089wrg.52.1543329422353; Tue, 27 Nov 2018 06:37:02 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:34 +0100 Message-Id: <1543329397-48407-13-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::430 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 Tue Apr 30 04:21:33 2024 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 1543329877608647.2788392206817; Tue, 27 Nov 2018 06:44:37 -0800 (PST) Received: from localhost ([::1]:42808 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRebM-00037D-Kp for importer@patchew.org; Tue, 27 Nov 2018 09:44:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReU7-0003yY-CA for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReU5-0001uF-2K for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:07 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:44698) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReU4-0001su-RJ for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:04 -0500 Received: by mail-wr1-x42b.google.com with SMTP id z5so18625720wrt.11 for ; Tue, 27 Nov 2018 06:37:04 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.37.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:37:02 -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=ui2AK7Rrgektp+k07lkG6l7TM+mjQbNm91OFfFnkD3xERQVMbQmSxTFPDtrVdf9k4s GgKZtwdRqLrNWzCnlfwG6LVCp7BhvRcrTi+xSmd/jM+FJLAELaVqDNkXkRm6PG0lQ4Ke VZN9eNswK06zsAASt/cEVVA9lVorLPItCzaDMKjKZ9Eqiozyi4y6StPekTR7eYs6/IAg rY3E1aTvZDOBmwPPh7zS6t+tWloUKqHvZqeCFBcShcB6stRSZ3WEby21cOKeYKI4H2oR 84W9mnT2yoJI0qf7NyhyEYa7/GKOiyiA5iFgPaNWj0mImFAIF9oUaE/b42oKZ9/DZneW k7NQ== 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=oFCX9nK/QeHyoj1JKVVgHjs/iuby9BsDTxImpGj5hX3SYpooA3ynB+yybiy3Fpyerq 1XM+ePRi0TMNLfXb9tAhEb+xntAPYvOQJ+YRS3HRwZvA5dYYD8EseLO9LOKpzJf0JLmB QYuZy6a3PsuUgEmV2kdRI5cLo81l1KsQn2z18ab48uQCA/kZ7NRSwQoLO5sLClV71Jlq bOjOIYmtjsvd//4ScaCa7jMdPuaem1qxLvlqsuletKfW5H9mOY/WhZoDkVKeqEZ+sDRe Am7+ofmPME5Twh/GwxGGMci9dqyE8VSH7E1TFWuJ+NGq7QQAaIWhs3UYGSazGuSr0779 kilQ== X-Gm-Message-State: AA+aEWY1qYI/16N9ZaaYHsgW0zPetlcaz8c1waJEaZVtoET/ymsJ1cfq y1EoTekTiG5uCcqWwR68FJhNiU9E X-Google-Smtp-Source: AFSGD/VTQqzPPnP9ZcGO4CXpUULHcy+TtFOnSZFY8BLOvTDUaVM+pB1k2Pnu2HRkueUVfppHoWTKLg== X-Received: by 2002:adf:83a7:: with SMTP id 36mr27885205wre.13.1543329423436; Tue, 27 Nov 2018 06:37:03 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:35 +0100 Message-Id: <1543329397-48407-14-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::42b 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 Tue Apr 30 04:21:33 2024 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 1543329997953295.97301988862864; Tue, 27 Nov 2018 06:46:37 -0800 (PST) Received: from localhost ([::1]:42823 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gRedI-0004ZB-NM for importer@patchew.org; Tue, 27 Nov 2018 09:46:36 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35420) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReU9-00040k-7G for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReU6-0001wx-BM for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:08 -0500 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:46026) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReU6-0001wA-3h for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:06 -0500 Received: by mail-wr1-x42d.google.com with SMTP id v6so22923831wrr.12 for ; Tue, 27 Nov 2018 06:37:06 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.37.03 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:37:03 -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=Ipdoyuvwf9l2yucceOFmRwNot578FQzmMKXusZ/66TI=; b=eBdxulQNHuKs7JRtc71CgWEe5zhlSjz/4j+jG71m1hbe3zTLgw2a7Mh85yB+nO/mnD e2oYwaDwHNBb9gBbHS/dJuNBdjWQf58OfH0I+4looB6AsDp6jZiaOgGolhn8NlHH8+SO vZVh2fIq8rb/IYg7Y6Bh1Mll2Own6/DDZKBwSuSYHctWQl2M772XYTGRgL57Y083TfON 3GcLxY8Yz0WJDFAXj8XcVS9M0DIluTnQVuRrpOgufRUQeIDOHA2HKSgD4radu5XMmEYk 71qSnA9s7gLI6osBZHOufdrN6Mi1CZLaj1VnozWtRIOKXtK0o2NkrhVYsNXik5NOj4ao 90jg== 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=Ipdoyuvwf9l2yucceOFmRwNot578FQzmMKXusZ/66TI=; b=TWjv4eaOSeSsfa1pxYbDWVYgL5Yy3notKd8jJ6qfUZzvLWFF4yMSfqEa6w91koD7IH pMcAR3S2tjFzssNWLN3lw27DBo5Plhhk3pA3hh08AHQ2x4UxQFeJsGjsX2J40hatHjq3 EyBgvjITOV5eRjHfMgupWdPiTD2Wg/a96LhklkDbhSsFLbJky268Bc6ztz/o9nv/sMP7 YXliX3wAq59aCZvPMdXpIpCmeJSa16bczFZhIuROGIvSRLM8WilXexCRzuJLjppp7x/N 4KcCVqS2RhKE5dIV2LcYSboe2vD8FBUkhR8iGXd95CX9FykD7IFlCPXIbYeCyYoEEJxV vnig== X-Gm-Message-State: AA+aEWZFrhnqwl3M/5z68X5q3TJf9uKSh4FptUD0BrpmJSW1Z8H40yBu x/pI+MoUuBt/IgJOdDNaZ8imXR28 X-Google-Smtp-Source: AFSGD/Vg5Kzt8DcrR+Cr6uFeVkSEUhXWahdQh+FtCFLgXdPNvrqN0n2sJeQuwlFivPnnJxuT6HlEvw== X-Received: by 2002:a5d:4f10:: with SMTP id c16mr28550797wru.177.1543329424737; Tue, 27 Nov 2018 06:37:04 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:36 +0100 Message-Id: <1543329397-48407-15-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::42d 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=A9 Lureau Signed-off-by: Paolo Bonzini --- 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 Tue Apr 30 04:21:33 2024 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 1543330054228538.8863236910142; Tue, 27 Nov 2018 06:47:34 -0800 (PST) Received: from localhost ([::1]:42824 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReeC-00059m-Uw for importer@patchew.org; Tue, 27 Nov 2018 09:47:32 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35492) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gReUF-00046f-24 for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gReU7-00022w-Q7 for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:14 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:34202) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gReU7-0001xU-FL for qemu-devel@nongnu.org; Tue, 27 Nov 2018 09:37:07 -0500 Received: by mail-wm1-x331.google.com with SMTP id y185so1732799wmd.1 for ; Tue, 27 Nov 2018 06:37:07 -0800 (PST) Received: from 640k.localdomain ([93.56.166.5]) by smtp.gmail.com with ESMTPSA id n62sm2821869wmd.25.2018.11.27.06.37.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 27 Nov 2018 06:37:05 -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=gMLcmz0vPSGW8/WXOoOOiXSIyZ8mrvo7bFWY+LqmrI8=; b=TqDWiaOAEgUP3h3WudRpWL1WsNS/ko8W7m1rQ/8A0h687+UzdldUFdG1RqZCoXySCY mJJsa0MDQEsryMXllem/J/qvYL6qFIn7QP+lQ87fwOqNkTD6iHe58pLhRk0C47a3+Ji/ 4TEvBBDD1PQO9eTWs+oCFErg3OCdvBvBwwMf71+5JyuWKRY/o7lmCTywKVe7qK7J2nxi ojjzZa+Dvzt/uUv5gogTJbrklz2QmZULeVtAPhcfw+uuEcj+uPUy7aHiiqBB8Ls/h8at E6flfmSY3f+7VB0iJWAQntSRgCiD92Ik87Zh9IQ1eCzVtruIq9uCSN02VaauZM6/MDnV 2arA== 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=gMLcmz0vPSGW8/WXOoOOiXSIyZ8mrvo7bFWY+LqmrI8=; b=rIkizhzQhwmbxnU225ETXGDCOhYyrl/iNBYBiYtHZ0FFTwStAwyi3DTMaIn2Ugtqd4 5/OJtPBKO5ZBgZmKoudq2uRg60/VVQdP+BuM4A2qgIWkGOQf3yN4PPJyVDDDa0Jitpr5 DW5jiUyN5ADzcZrpQD9Vebt0fcZxt4WUPbONbkoX96npwRIsnGbwbhaAnc9WzJFoDnOA d4qlBCqY3HqQwMt7UgYfxp7SSIyRRoanzPqptLn+h7QDf7WMRfGvMqLiEujVBAeRsfT7 1sVpda7egm6qxPH/9mh315YWS9yLQuxjVCtzhSrPkexg8icGDvZKj+bfrZnbSbXOkHtl CCdw== X-Gm-Message-State: AA+aEWb6VcE6t2SVDdNX24TEmitMd+XUwIjmEzccY+BrallwY73GxMCM 8Pv7zODUwrlbhYa7dKWnBuGu9kj0 X-Google-Smtp-Source: AFSGD/Voy7NzC+uDUEVlB9yoqWYi//KolXYQh0BkXHfCZHis5oFu0AmCDFUhloPwdAahTl0bZXGzZw== X-Received: by 2002:a1c:2643:: with SMTP id m64mr12358709wmm.22.1543329425985; Tue, 27 Nov 2018 06:37:05 -0800 (PST) From: Paolo Bonzini To: qemu-devel@nongnu.org Date: Tue, 27 Nov 2018 15:36:37 +0100 Message-Id: <1543329397-48407-16-git-send-email-pbonzini@redhat.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1543329397-48407-1-git-send-email-pbonzini@redhat.com> References: <1543329397-48407-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::331 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 --- 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