From nobody Thu May 16 20:46:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=crudebyte.com ARC-Seal: i=1; a=rsa-sha256; t=1684252877; cv=none; d=zohomail.com; s=zohoarc; b=Tg7E9GtP4f4zS1FB3qtifloD7ov1wTqHXCIP1BNbcOuy9WLUgderYkgo2gD/Iv0uDcC3YbBquh2eC6v3RFr8Fo/e4rFxHUDLMjKLx/Mznx+Ii5PyknZgL0Mq+G/3/YAFAK5OvX3ZVzK1GVgxbjGYBKElPvxYTKnkXsTZnAuPNiE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684252877; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=EgiLUeOgq0HzT+OLgbl6alLee7zcXQUjYHHtRXqSfZM=; b=mfN4ZU2Q/mPWxzRgex1IordNSD56Xj67syMZ82yghM4WavNlhEWLbaC90UYxPrSylnpO0Vu9NhbpU9RFYZd5vzhLxEpTACKL/fnKtEmRKuxB6HVNueCzT6oNoOxphpa5gTHY2Xj8h3t8xFaNf1BQNzIj968xeYhHwM5ppVSbCv0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1684252877146734.5742959551368; Tue, 16 May 2023 09:01:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pyx5q-00030X-OQ; Tue, 16 May 2023 12:00:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <1a67e07fe984e3bc9fe4b25a212e879b02e114cb@lizzy.crudebyte.com>) id 1pyx5o-00030C-7l for qemu-devel@nongnu.org; Tue, 16 May 2023 12:00:04 -0400 Received: from lizzy.crudebyte.com ([91.194.90.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <1a67e07fe984e3bc9fe4b25a212e879b02e114cb@lizzy.crudebyte.com>) id 1pyx5m-0004rR-F0 for qemu-devel@nongnu.org; Tue, 16 May 2023 12:00:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=crudebyte.com; s=lizzy; h=Cc:To:Subject:Date:From:References:In-Reply-To: Message-Id:Content-Type:Content-Transfer-Encoding:MIME-Version:Content-ID: Content-Description; bh=EgiLUeOgq0HzT+OLgbl6alLee7zcXQUjYHHtRXqSfZM=; b=Ualsl laMlZhtbA/KIFkUUmwKA8loYAtuuz9GkFVjcoHEgwvX0RIlB9Wc9jjCJGkkx+17LsqstESBBojs8x Sj/qSlQLGADV+JSj2opSSsapkwnbcPGbnqLNYng3nw33X+f7fitCkm8ryveCSKevuCWph8QpT9umN SqWFvmxZgtQSsb1eNuen8vY2VwE06aGYOTWFg86sLkpBKB+N4LbJ33ilbz4FbquD4wabk5ytpEwED 4YVhtvbmKSmW/oOtgz8LM0GrRreiXICOtBdwPI2XMGNPwQE0NPP02F4O899RMGOKidE3cFP86k2in Ki3zK4qt4x/7/gFqX4VESI6NG5x6w==; Message-Id: <1a67e07fe984e3bc9fe4b25a212e879b02e114cb.1684250463.git.qemu_oss@crudebyte.com> In-Reply-To: References: From: Christian Schoenebeck Date: Tue, 16 May 2023 17:21:04 +0200 Subject: [PULL 1/4] Don't require libcap-ng for virtfs support To: qemu-devel@nongnu.org, Peter Maydell Cc: Greg Kurz , Peter Foley Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=91.194.90.13; envelope-from=1a67e07fe984e3bc9fe4b25a212e879b02e114cb@lizzy.crudebyte.com; helo=lizzy.crudebyte.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @crudebyte.com) X-ZM-MESSAGEID: 1684252879599100001 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Peter Foley It's only required for the proxy helper. Add a new option for the proxy helper rather than enabling it implicitly. Change-Id: I95b73fca625529e99d16b0a64e01c65c0c1d43f2 Signed-off-by: Peter Foley Message-Id: <20230503130757.863824-1-pefoley@google.com> [C.S.: - Resolve merge conflict. ] Signed-off-by: Christian Schoenebeck --- meson.build | 12 +++++++++--- meson_options.txt | 2 ++ scripts/meson-buildoptions.sh | 4 ++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index 25a4b9f2c1..c6b05149e9 100644 --- a/meson.build +++ b/meson.build @@ -1766,12 +1766,17 @@ have_virtfs =3D get_option('virtfs') \ error_message: 'virtio-9p (virtfs) requires Linux or macOS') \ .require(targetos =3D=3D 'linux' or cc.has_function('pthread_fchdir_np= '), error_message: 'virtio-9p (virtfs) on macOS requires the pres= ence of pthread_fchdir_np') \ - .require(targetos =3D=3D 'darwin' or (libattr.found() and libcap_ng.fo= und()), - error_message: 'virtio-9p (virtfs) on Linux requires libcap-n= g-devel and libattr-devel') \ + .require(targetos =3D=3D 'darwin' or libattr.found(), + error_message: 'virtio-9p (virtfs) on Linux requires libattr-= devel') \ .disable_auto_if(not have_tools and not have_system) \ .allowed() =20 -have_virtfs_proxy_helper =3D targetos !=3D 'darwin' and have_virtfs and ha= ve_tools +have_virtfs_proxy_helper =3D get_option('virtfs_proxy_helper') \ + .require(targetos !=3D 'darwin', error_message: 'the virtfs proxy help= er is incompatible with macOS') \ + .require(have_virtfs, error_message: 'the virtfs proxy helper requires= that virtfs is enabled') \ + .disable_auto_if(not have_tools) \ + .require(libcap_ng.found(), error_message: 'the virtfs proxy helper re= quires libcap-ng') \ + .allowed() =20 if get_option('block_drv_ro_whitelist') =3D=3D '' config_host_data.set('CONFIG_BDRV_RO_WHITELIST', '') @@ -3926,6 +3931,7 @@ if have_block summary_info +=3D {'Block whitelist (ro)': get_option('block_drv_ro_whit= elist')} summary_info +=3D {'Use block whitelist in tools': get_option('block_drv= _whitelist_in_tools')} summary_info +=3D {'VirtFS support': have_virtfs} + summary_info +=3D {'VirtFS Proxy Helper support': have_virtfs_proxy_help= er} summary_info +=3D {'Live block migration': config_host_data.get('CONFIG_= LIVE_BLOCK_MIGRATION')} summary_info +=3D {'replication support': config_host_data.get('CONFIG_R= EPLICATION')} summary_info +=3D {'bochs support': get_option('bochs').allowed()} diff --git a/meson_options.txt b/meson_options.txt index d8330a1f71..11aec2a441 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -274,6 +274,8 @@ option('vhost_user_blk_server', type: 'feature', value:= 'auto', description: 'build vhost-user-blk server') option('virtfs', type: 'feature', value: 'auto', description: 'virtio-9p support') +option('virtfs_proxy_helper', type: 'feature', value: 'auto', + description: 'virtio-9p proxy helper support') option('libvduse', type: 'feature', value: 'auto', description: 'build VDUSE Library') option('vduse_blk_export', type: 'feature', value: 'auto', diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh index 2805d1c145..52fb079a60 100644 --- a/scripts/meson-buildoptions.sh +++ b/scripts/meson-buildoptions.sh @@ -181,6 +181,8 @@ meson_options_help() { printf "%s\n" ' vhost-vdpa vhost-vdpa kernel backend support' printf "%s\n" ' virglrenderer virgl rendering support' printf "%s\n" ' virtfs virtio-9p support' + printf "%s\n" ' virtfs-proxy-helper' + printf "%s\n" ' virtio-9p proxy helper support' printf "%s\n" ' vmdk vmdk image format support' printf "%s\n" ' vmnet vmnet.framework network backend support' printf "%s\n" ' vnc VNC server' @@ -474,6 +476,8 @@ _meson_option_parse() { --disable-virglrenderer) printf "%s" -Dvirglrenderer=3Ddisabled ;; --enable-virtfs) printf "%s" -Dvirtfs=3Denabled ;; --disable-virtfs) printf "%s" -Dvirtfs=3Ddisabled ;; + --enable-virtfs-proxy-helper) printf "%s" -Dvirtfs_proxy_helper=3Denab= led ;; + --disable-virtfs-proxy-helper) printf "%s" -Dvirtfs_proxy_helper=3Ddis= abled ;; --enable-vmdk) printf "%s" -Dvmdk=3Denabled ;; --disable-vmdk) printf "%s" -Dvmdk=3Ddisabled ;; --enable-vmnet) printf "%s" -Dvmnet=3Denabled ;; --=20 2.30.2 From nobody Thu May 16 20:46:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=crudebyte.com ARC-Seal: i=1; a=rsa-sha256; t=1684252962; cv=none; d=zohomail.com; s=zohoarc; b=Q1DdjZgOzSzpB2zs+XeJiaoLHoMTJ1psBa4IzxGyTYlFTkkKrl45tTCIXGymbeHnptpK10XtIzV6HJMdshf9QNVnZO/FJIOqj3PBL17QP06J9pZ6JPuLWKcYwAXf3C7AMlOSYiyBj1SDSSPk84unbEfGjvAp+B8AexsDdctIipw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684252962; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=ZJHoujVIp3sRkQlKqLa6nZjxbiJBRyfjnlp5F8WFlXM=; b=h7GZNYyi0ayVV70uWxY1UZdd+r26rGUS6DM2USiSXHVsfQI3JupEWw36ObVWahu+xQtwLPhXatlVbh9GSMjmcCCkdjx6v/qeeFMG76537PmbtLMmbQDR4tXlUfqZHpy+2/5kPe10V8fhOMFggasKO3Gp2H5C+FKXrOy7OXWkisY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1684252962343205.9731916031741; Tue, 16 May 2023 09:02:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pyx6w-0003hL-AW; Tue, 16 May 2023 12:01:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pyx6o-0003VX-T7 for qemu-devel@nongnu.org; Tue, 16 May 2023 12:01:07 -0400 Received: from lizzy.crudebyte.com ([91.194.90.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pyx6n-0005Cz-7c for qemu-devel@nongnu.org; Tue, 16 May 2023 12:01:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=crudebyte.com; s=lizzy; h=Cc:To:Subject:Date:From:References:In-Reply-To: Message-Id:Content-Type:Content-Transfer-Encoding:MIME-Version:Content-ID: Content-Description; bh=ZJHoujVIp3sRkQlKqLa6nZjxbiJBRyfjnlp5F8WFlXM=; b=LTvs5 Myc3zHldKijzcnyfoDdeZZanqJwSUr63yroarz+VNKMr2AmXOQHdpK638WYwDVgWhczOvRDkM+D8j sLgMjwPLUZhdwuJe4ZY7nRuCfnIe9Phv+LSQ717dqEvzQlsbYUxXoV0VfIddJRd1FN6PUBiTQD/Pg wfVdvfWIeqHkxO/EmNupmhMVcXz8O747NelvhXiA66Q91m1JFlB5AuDBSjK9A44bfQNFYh0Hkpv3V f/WKXQqbMEwHzzNQHWeJ5JRqw+hIxicaIjezf12kADG1pKXU311LR7aJGa6xNDadl0S1NixHrvwXZ 8XJtd4iYyROnSq806mP901eRyAE1w==; Message-Id: In-Reply-To: References: From: Christian Schoenebeck Date: Tue, 16 May 2023 17:21:04 +0200 Subject: [PULL 2/4] tests/9p: fix potential leak in v9fs_rreaddir() To: qemu-devel@nongnu.org, Peter Maydell Cc: Greg Kurz Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=91.194.90.13; envelope-from=f91ce58cb2eba96192bdbd730e7a0952873f6c05@lizzy.crudebyte.com; helo=lizzy.crudebyte.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @crudebyte.com) X-ZM-MESSAGEID: 1684252962954100001 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Free allocated directory entries in v9fs_rreaddir() if argument `entries` was passed as NULL, to avoid a memory leak. It is explicitly allowed by design for `entries` to be NULL. [1] [1] https://lore.kernel.org/all/1690923.g4PEXVpXuU@silver Reported-by: Coverity (CID 1487558) Signed-off-by: Christian Schoenebeck Reviewed-by: Greg Kurz Message-Id: --- tests/qtest/libqos/virtio-9p-client.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/qtest/libqos/virtio-9p-client.c b/tests/qtest/libqos/vir= tio-9p-client.c index e4a368e036..b8adc8d4b9 100644 --- a/tests/qtest/libqos/virtio-9p-client.c +++ b/tests/qtest/libqos/virtio-9p-client.c @@ -594,6 +594,8 @@ void v9fs_rreaddir(P9Req *req, uint32_t *count, uint32_= t *nentries, { uint32_t local_count; struct V9fsDirent *e =3D NULL; + /* only used to avoid a leak if entries was NULL */ + struct V9fsDirent *unused_entries =3D NULL; uint16_t slen; uint32_t n =3D 0; =20 @@ -612,6 +614,8 @@ void v9fs_rreaddir(P9Req *req, uint32_t *count, uint32_= t *nentries, e =3D g_new(struct V9fsDirent, 1); if (entries) { *entries =3D e; + } else { + unused_entries =3D e; } } else { e =3D e->next =3D g_new(struct V9fsDirent, 1); @@ -628,6 +632,7 @@ void v9fs_rreaddir(P9Req *req, uint32_t *count, uint32_= t *nentries, *nentries =3D n; } =20 + v9fs_free_dirents(unused_entries); v9fs_req_free(req); } =20 --=20 2.30.2 From nobody Thu May 16 20:46:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=crudebyte.com ARC-Seal: i=1; a=rsa-sha256; t=1684252963; cv=none; d=zohomail.com; s=zohoarc; b=DX+b35SxImpyz01IqJDeD4xP7v7Oiqq1dpj6Xeunwn6oc3Er1JXErxzhKQkJKbz4ZCB7AJaSTI7F1jUhWSluhS/oq1al53tFaf6kIuBbbCja8B7oRpMAFclfvlNHoAQNTlkLeUzy6pmNyQvwT3R1ysHvlYksu8xu64YPYftyy1U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684252963; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=k/90AN6vIUWHooVGX72TSem9nRsu/shYh23nNeqFEJc=; b=lVxxYkp0c1jDwTGfkGyojlbi1NRPJjnhPomcxy1c5p3/A7d60/c3KMAuI/+UsjgKnlzsqci1UkDYf1erHh61KsSxxJMDFZLQmtJj1763MK5Y3/j/p57Whg1DY7guhx0ZRGrfjJf/m4Q8b2XU6MUvkOz0RrRz/G/veSkSpn1Ts/k= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1684252963098500.1208236371376; Tue, 16 May 2023 09:02:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pyx83-0004mE-VU; Tue, 16 May 2023 12:02:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <92e667f6fd5806a6a705a2a43e572bd9ec6819da@lizzy.crudebyte.com>) id 1pyx7r-0004fM-71 for qemu-devel@nongnu.org; Tue, 16 May 2023 12:02:17 -0400 Received: from lizzy.crudebyte.com ([91.194.90.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <92e667f6fd5806a6a705a2a43e572bd9ec6819da@lizzy.crudebyte.com>) id 1pyx7o-0005ay-19 for qemu-devel@nongnu.org; Tue, 16 May 2023 12:02:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=crudebyte.com; s=lizzy; h=Cc:To:Subject:Date:From:References:In-Reply-To: Message-Id:Content-Type:Content-Transfer-Encoding:MIME-Version:Content-ID: Content-Description; bh=k/90AN6vIUWHooVGX72TSem9nRsu/shYh23nNeqFEJc=; b=lr9yy 7gRJXjSz6blLg/j3Ka3stuAVxeKa1f50hkQtySLzQMaSlJKLsC6IQ/UiFuvJP0nsN2ktN+NA1DqRp LhVGBLZYyigfrNUs2QoKKT4RzLWrtjQDLhPpDs4Ah+v0fdHzFO85TyecvlbOqGlLz3sOa1MmyNwWx oZloDq9ze1LfxQsnQ8QO/9nV5nGaRw2WH7uVZmX+WL06Zu8LIXF+3jEYGg80oiwxa0CKwxY5grsQX 1ip9L1xZfDTN46TfVNm/yAtnIFwyd7K30wSJjsZ5k+3RgLSBLFbow5EbkOpdTLh1Y/wP0TfVIrvWY x5H+yplpVo3o7S856ieQwk/Du9V/A==; Message-Id: <92e667f6fd5806a6a705a2a43e572bd9ec6819da.1684250463.git.qemu_oss@crudebyte.com> In-Reply-To: References: From: Christian Schoenebeck Date: Tue, 16 May 2023 17:21:04 +0200 Subject: [PULL 3/4] 9pfs/xen: Fix segfault on shutdown To: qemu-devel@nongnu.org, Peter Maydell Cc: Greg Kurz , Jason Andryuk , Stefano Stabellini Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=91.194.90.13; envelope-from=92e667f6fd5806a6a705a2a43e572bd9ec6819da@lizzy.crudebyte.com; helo=lizzy.crudebyte.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @crudebyte.com) X-ZM-MESSAGEID: 1684252965070100001 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Jason Andryuk xen_9pfs_free can't use gnttabdev since it is already closed and NULL-ed out when free is called. Do the teardown in _disconnect(). This matches the setup done in _connect(). trace-events are also added for the XenDevOps functions. Signed-off-by: Jason Andryuk Reviewed-by: Stefano Stabellini Message-Id: <20230502143722.15613-1-jandryuk@gmail.com> [C.S.: - Remove redundant return in xen_9pfs_free(). - Add comment to trace-events. ] Signed-off-by: Christian Schoenebeck --- hw/9pfs/trace-events | 6 ++++++ hw/9pfs/xen-9p-backend.c | 35 ++++++++++++++++++++++------------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/hw/9pfs/trace-events b/hw/9pfs/trace-events index 6c77966c0b..a12e55c165 100644 --- a/hw/9pfs/trace-events +++ b/hw/9pfs/trace-events @@ -48,3 +48,9 @@ v9fs_readlink(uint16_t tag, uint8_t id, int32_t fid) "tag= %d id %d fid %d" v9fs_readlink_return(uint16_t tag, uint8_t id, char* target) "tag %d id %d= name %s" v9fs_setattr(uint16_t tag, uint8_t id, int32_t fid, int32_t valid, int32_t= mode, int32_t uid, int32_t gid, int64_t size, int64_t atime_sec, int64_t m= time_sec) "tag %u id %u fid %d iattr=3D{valid %d mode %d uid %d gid %d size= %"PRId64" atime=3D%"PRId64" mtime=3D%"PRId64" }" v9fs_setattr_return(uint16_t tag, uint8_t id) "tag %u id %u" + +# xen-9p-backend.c +xen_9pfs_alloc(char *name) "name %s" +xen_9pfs_connect(char *name) "name %s" +xen_9pfs_disconnect(char *name) "name %s" +xen_9pfs_free(char *name) "name %s" diff --git a/hw/9pfs/xen-9p-backend.c b/hw/9pfs/xen-9p-backend.c index 0e266c552b..4aa9c8c736 100644 --- a/hw/9pfs/xen-9p-backend.c +++ b/hw/9pfs/xen-9p-backend.c @@ -25,6 +25,8 @@ #include "qemu/iov.h" #include "fsdev/qemu-fsdev.h" =20 +#include "trace.h" + #define VERSIONS "1" #define MAX_RINGS 8 #define MAX_RING_ORDER 9 @@ -337,6 +339,8 @@ static void xen_9pfs_disconnect(struct XenLegacyDevice = *xendev) Xen9pfsDev *xen_9pdev =3D container_of(xendev, Xen9pfsDev, xendev); int i; =20 + trace_xen_9pfs_disconnect(xendev->name); + for (i =3D 0; i < xen_9pdev->num_rings; i++) { if (xen_9pdev->rings[i].evtchndev !=3D NULL) { qemu_set_fd_handler(qemu_xen_evtchn_fd(xen_9pdev->rings[i].evt= chndev), @@ -345,40 +349,41 @@ static void xen_9pfs_disconnect(struct XenLegacyDevic= e *xendev) xen_9pdev->rings[i].local_port); xen_9pdev->rings[i].evtchndev =3D NULL; } - } -} - -static int xen_9pfs_free(struct XenLegacyDevice *xendev) -{ - Xen9pfsDev *xen_9pdev =3D container_of(xendev, Xen9pfsDev, xendev); - int i; - - if (xen_9pdev->rings[0].evtchndev !=3D NULL) { - xen_9pfs_disconnect(xendev); - } - - for (i =3D 0; i < xen_9pdev->num_rings; i++) { if (xen_9pdev->rings[i].data !=3D NULL) { xen_be_unmap_grant_refs(&xen_9pdev->xendev, xen_9pdev->rings[i].data, xen_9pdev->rings[i].intf->ref, (1 << xen_9pdev->rings[i].ring_order)); + xen_9pdev->rings[i].data =3D NULL; } if (xen_9pdev->rings[i].intf !=3D NULL) { xen_be_unmap_grant_ref(&xen_9pdev->xendev, xen_9pdev->rings[i].intf, xen_9pdev->rings[i].ref); + xen_9pdev->rings[i].intf =3D NULL; } if (xen_9pdev->rings[i].bh !=3D NULL) { qemu_bh_delete(xen_9pdev->rings[i].bh); + xen_9pdev->rings[i].bh =3D NULL; } } =20 g_free(xen_9pdev->id); + xen_9pdev->id =3D NULL; g_free(xen_9pdev->tag); + xen_9pdev->tag =3D NULL; g_free(xen_9pdev->path); + xen_9pdev->path =3D NULL; g_free(xen_9pdev->security_model); + xen_9pdev->security_model =3D NULL; g_free(xen_9pdev->rings); + xen_9pdev->rings =3D NULL; +} + +static int xen_9pfs_free(struct XenLegacyDevice *xendev) +{ + trace_xen_9pfs_free(xendev->name); + return 0; } =20 @@ -390,6 +395,8 @@ static int xen_9pfs_connect(struct XenLegacyDevice *xen= dev) V9fsState *s =3D &xen_9pdev->state; QemuOpts *fsdev; =20 + trace_xen_9pfs_connect(xendev->name); + if (xenstore_read_fe_int(&xen_9pdev->xendev, "num-rings", &xen_9pdev->num_rings) =3D=3D -1 || xen_9pdev->num_rings > MAX_RINGS || xen_9pdev->num_rings < 1) { @@ -499,6 +506,8 @@ out: =20 static void xen_9pfs_alloc(struct XenLegacyDevice *xendev) { + trace_xen_9pfs_alloc(xendev->name); + xenstore_write_be_str(xendev, "versions", VERSIONS); xenstore_write_be_int(xendev, "max-rings", MAX_RINGS); xenstore_write_be_int(xendev, "max-ring-page-order", MAX_RING_ORDER); --=20 2.30.2 From nobody Thu May 16 20:46:44 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=quarantine dis=none) header.from=crudebyte.com ARC-Seal: i=1; a=rsa-sha256; t=1684252724; cv=none; d=zohomail.com; s=zohoarc; b=DPHn+9vB8kLgRPwcNqSAG++HJAhK/XE8O9d2k7FhQ6vKKAW5nmebdZt2IwhJIP80XQmPNlCrINazj1Zd+HBFJdU+Z/CfA9DzpR6bWX9ugEgzb7pMtU8xnV7iZFqvV/zYl2+XcFa7Xri5aQog1aYB2w4Pr9lw8VCKMkTwTTh8TZM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1684252724; h=Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:Message-ID:References:Sender:Subject:To; bh=HwoUHAOMcBRr0HwXNBkEMeaarhSfXj86KJOvYkVWFnU=; b=jSE8wZ7YT3iz3WTH+njWZqxFp9yljR20gn0MiO1Nd7bySyDrnESxhYJOFCdNnzfznOrecwvjpLP4iJ8GsJxI6/4A9vTn85WeqXudAgn7hikxVMG5rODp0l0XreP6ZwftgmZPUToFXPdOq4Op28l9jDl5Bkdwz8ap1UiH54/C4ms= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1684252724257703.8881460327982; Tue, 16 May 2023 08:58:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pyx3n-0001gL-Po; Tue, 16 May 2023 11:57:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <3887702e5f8995638c98f9d9326b4913fb107be7@lizzy.crudebyte.com>) id 1pyx3l-0001fd-Hz for qemu-devel@nongnu.org; Tue, 16 May 2023 11:57:57 -0400 Received: from lizzy.crudebyte.com ([91.194.90.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <3887702e5f8995638c98f9d9326b4913fb107be7@lizzy.crudebyte.com>) id 1pyx3j-0004Wa-Mx for qemu-devel@nongnu.org; Tue, 16 May 2023 11:57:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=crudebyte.com; s=lizzy; h=Cc:To:Subject:Date:From:References:In-Reply-To: Message-Id:Content-Type:Content-Transfer-Encoding:MIME-Version:Content-ID: Content-Description; bh=HwoUHAOMcBRr0HwXNBkEMeaarhSfXj86KJOvYkVWFnU=; b=NQne6 XDAYLSfweWSEpFDWKc+eKfs2qBsY5yp9itnpw9VAGi5s44F66RsZepu3GEopnsR+vGcpPWPsLeFVr Khw2v+NEsjzH31XiPW0DmKORe1DpJ2YfSKrA2vmfzF9S12f2YSOCU4ju1oltb1luQxfBQDOkC+Rk7 zhPkHAqrl7NqXPzhuKPRl8hDzZTIBPyIiqD/YmhGa84Pn0yF+/U/fg3YR5hZSRqUksdrAa41PHiKb WLEsQr8i37o9ObLAgN0IBnblai0WmHtF7r1SQLUQH2OXoQFCHCpPRmqBpa+50al+iMufsiNB8I/hq W6rBFxPGrQzZUmGsPk9iiLp7ZMlXw==; Message-Id: <3887702e5f8995638c98f9d9326b4913fb107be7.1684250463.git.qemu_oss@crudebyte.com> In-Reply-To: References: From: Christian Schoenebeck Date: Tue, 16 May 2023 17:21:04 +0200 Subject: [PULL 4/4] configure: make clear that VirtFS is 9p To: qemu-devel@nongnu.org, Peter Maydell Cc: Greg Kurz , Thomas Huth Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=91.194.90.13; envelope-from=3887702e5f8995638c98f9d9326b4913fb107be7@lizzy.crudebyte.com; helo=lizzy.crudebyte.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @crudebyte.com) X-ZM-MESSAGEID: 1684252726049100001 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Add '9P' to the summary output section of 'VirtFS' to avoid being confused with virtiofs. Based-on: <20230503130757.863824-1-pefoley@google.com> Signed-off-by: Christian Schoenebeck Reviewed-by: Greg Kurz Reviewed-by: Thomas Huth Message-Id: --- meson.build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index c6b05149e9..5e2807ea7c 100644 --- a/meson.build +++ b/meson.build @@ -3930,8 +3930,8 @@ if have_block summary_info +=3D {'Block whitelist (rw)': get_option('block_drv_rw_whit= elist')} summary_info +=3D {'Block whitelist (ro)': get_option('block_drv_ro_whit= elist')} summary_info +=3D {'Use block whitelist in tools': get_option('block_drv= _whitelist_in_tools')} - summary_info +=3D {'VirtFS support': have_virtfs} - summary_info +=3D {'VirtFS Proxy Helper support': have_virtfs_proxy_help= er} + summary_info +=3D {'VirtFS (9P) support': have_virtfs} + summary_info +=3D {'VirtFS (9P) Proxy Helper support': have_virtfs_proxy= _helper} summary_info +=3D {'Live block migration': config_host_data.get('CONFIG_= LIVE_BLOCK_MIGRATION')} summary_info +=3D {'replication support': config_host_data.get('CONFIG_R= EPLICATION')} summary_info +=3D {'bochs support': get_option('bochs').allowed()} --=20 2.30.2