From nobody Fri May 17 04:59:52 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1650470274; cv=none; d=zohomail.com; s=zohoarc; b=hs6tiRAmL6BUkmeOi3fLkKeccl2fFRr0x2+DBUNKMf1Tm5P39lGPzlyXOHSaNAkcyM2kj9YH/Ipii7Qz5VH2RCxG+wr1f4+IJQLa287PHm5xR4kiu8ViDGi0tqQxCU5G/It8H+zwxMDKWqN3+NohQWf5HfFOIr/gQW0U3/gD8xQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1650470274; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=xQBzlgKQX0bgrC3PE9Q7WNIQR4dvc8PFn65ZuUgrv2s=; b=lLr1zidpUkE3as/7p/xVaSSpnQW3cBaxIh8/Lj37xEBWnrv5HQ04VIRxy2GyC/sVoX7BePGXLOEo22/Yhd3SBSeNWCkh0IpSZGN2H+BPskkIeZLcUehT6wJ5yCABAmX4+9M+F50G+zxrsD3uDnJrxaGYiNRv4n+/6dkFyw9y9lo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1650470274650432.8544204279143; Wed, 20 Apr 2022 08:57:54 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.309473.525752 (Exim 4.92) (envelope-from ) id 1nhChq-0006jK-U8; Wed, 20 Apr 2022 15:57:26 +0000 Received: by outflank-mailman (output) from mailman id 309473.525752; Wed, 20 Apr 2022 15:57:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nhChq-0006jD-QY; Wed, 20 Apr 2022 15:57:26 +0000 Received: by outflank-mailman (input) for mailman id 309473; Wed, 20 Apr 2022 15:57:24 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nhCho-0006j7-RB for xen-devel@lists.xenproject.org; Wed, 20 Apr 2022 15:57:24 +0000 Received: from esa5.hc3370-68.iphmx.com (esa5.hc3370-68.iphmx.com [216.71.155.168]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 8f8fb64a-c0c2-11ec-a405-831a346695d4; Wed, 20 Apr 2022 17:57:23 +0200 (CEST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 8f8fb64a-c0c2-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1650470243; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=1s+jDJLjZkp14miwMVaWlVz5f1j3mQtfwGaoBi6XF1c=; b=KfCy87xATwLUImt0jrfYZfdWCcFit/NE9tGPK+vrHaK7gAyoGPyFGOVT peYG9K5IUyc3dkDvWZ3zC3rmQyTVNrEH7Mt7ZqkJG3w+Y73ZvlUDHoS7v E0bpQoPaKb12y90KV8wYjgtRL5GtQHbAtqV3fqScOo38O4vkKthVLb8eu s=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none X-SBRS: 5.1 X-MesageID: 68925659 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED IronPort-Data: A9a23:q96m3qMk6iJcOwzvrR1El8FynXyQoLVcMsEvi/4bfWQNrUpz3z0Fy 2ZLCjuOb/fZYmfyeYwibI3npkNQ75LRm4dgSgto+SlhQUwRpJueD7x1DKtR0wB+jCHnZBg6h ynLQoCYdKjYdleF+lH1dOKJQUBUjclkfJKlYAL/En03FFcMpBsJ00o5wbZl2NYw27BVPivW0 T/Mi5yHULOa82Yc3lI8s8pvfzs24ZweEBtB1rAPTagjUG32zhH5P7pGTU2FFFPqQ5E8IwKPb 72rIIdVXI/u10xF5tuNyt4Xe6CRK1LYFVDmZnF+A8BOjvXez8CbP2lS2Pc0MC9qZzu1c99Zk txOtLyWdxcVAIrKmsEWcjBVTTBBBPgTkFPHCSDXXc27ykTHdz3nwul0DVFwNoodkgp1KTgQr 7pCcmlLN03dwbLtqF64YrAEasALBc/nJo4A/FpnyinUF60OSpHfWaTao9Rf2V/cg+gQTaeEO pREOFKDajzpTDJOY3Q+VakxkcO0g0jvQgF3uEya8P9fD2/7k1UqjemF3MDuUt6FX8JOhW6Du 3nLuW/+B3kyFvaS1D6E+XKEnfLUkGXwX4d6PLe17OJwiVufgGkaEgQLVECTqOO8zEW5Xrp3F UsQ/SY/qLkow2aiRNL9Qh6QrWaNu1gXXN84O/Yh9AiHx67Q4gCYLmsJVDhMbJohrsBebSwn0 BqFks3kARRrsaaJUjSN+7GMtzSwNCMJa2gYakcsTxYB4tTliJE+iFTIVNkLOLGxps34H3f32 T/ikcQlr+xN14hRjfz9pA2ZxWL3znTUcuIrzl/eXWOFyD1pWLCCYY6N4nny4KhRE7/MGzFto 0M4s8SZ6ekPC7SEmyqMXPgBEdmV2hqVDNHPqQUxRsd8rlxB71bmJNkNu28meC+FJ+5eIVfUj FnvVRS9DXO5FF+jdudJbo24EKzGJoCwRI2+Bpg4gjejC6WdlTNrHgkzPSZ8PEi3ySDAdJ3T3 r/BL66R4Y4yU/gP8dZPb751PUUX7i4/33jPYpvw0g6q17GTDFbMF+pdbAPUMr9mtvPYyOkwz zq5H5Lbo/m4eLegChQ7DKZJdQxaRZTFLcyeRzNrmh6rfVM9RTBJ5w75yrI9YY1195m5Zc+Tl kxRrnRwkQKl7VWecF3iQik6NNvHAMckxVpmbHNEALpd8yV6CWpZxPxHJ8VfkHhO3LEL8MOYu NFcIpvbU6UTEGmfk9nfBLGkxLFfmN2QrVrmF0KYjPIXJfaMmyShFgfYQzbS IronPort-HdrOrdr: A9a23:BPNj3633t4d7XBeY8SRo5AqjBL4kLtp133Aq2lEZdPRUGvb3qy nIpoV96faUskd0ZJhOo7C90cW7LU80lqQFhLX5X43SPzUO0VHAROoJgLcKqweQfREWndQ96U 4PScdD4aXLfDpHsfo= X-IronPort-AV: E=Sophos;i="5.90,276,1643691600"; d="scan'208";a="68925659" From: Andrew Cooper To: Xen-devel CC: Andrew Cooper , George Dunlap , Jan Beulich , "Stefano Stabellini" , Wei Liu , Julien Grall , Juergen Gross , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , "Volodymyr Babchuk" , Bertrand Marquis Subject: [PATCH RFC] x86: Fix XEN_DOMCTL_gdbsx_guestmemio crash Date: Wed, 20 Apr 2022 16:56:57 +0100 Message-ID: <20220420155657.32506-1-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1650470275319100001 When CONFIG_GDBSX is compiled out, iommu_do_domctl() falls over a NULL pointer. It isn't really correct for processing of XEN_DOMCTL_gdbsx_* to f= all into the default case when compiled out. Signed-off-by: Andrew Cooper --- CC: George Dunlap CC: Jan Beulich CC: Stefano Stabellini CC: Wei Liu CC: Julien Grall CC: Juergen Gross CC: Roger Pau Monn=C3=A9 CC: Volodymyr Babchuk CC: Bertrand Marquis RFC, because this has implications across the codebase. The tl;dr is that case FOO:'s shouldn't be compiled out; we still know what the subops are, e= ven when the functionality is compiled out. There are several ways to express this. Alternatives would be: case XEN_DOMCTL_gdbsx_guestmemio: if ( !IS_ENABLED(CONFIG_GDBSX) ) { rc =3D -EOPNOTSUPP; break; } ...; but given my debugger series creating gdbsx.c, I was also considering: case XEN_DOMCTL_gdbsx_guestmemio: case XEN_DOMCTL_gdbsx_pausevcpu: case XEN_DOMCTL_gdbsx_unpausevcpu: case XEN_DOMCTL_gdbsx_domstatus: rc =3D gdbsx_do_domctl(d, iop); break; when I can rework the callers of domain_pause_for_debugger() slightly, at which point we can conditionally compile the gdbsx variables out struct domain/vcpu, which wouldn't be compatible with the first suggestion. Thoughts? --- xen/arch/x86/domctl.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c index a6aae500a30b..1faa5a49ff3c 100644 --- a/xen/arch/x86/domctl.c +++ b/xen/arch/x86/domctl.c @@ -890,7 +890,14 @@ long arch_do_domctl( copyback =3D true; break; } -#endif +#else /* CONFIG_GDBSX */ + case XEN_DOMCTL_gdbsx_guestmemio: + case XEN_DOMCTL_gdbsx_pausevcpu: + case XEN_DOMCTL_gdbsx_unpausevcpu: + case XEN_DOMCTL_gdbsx_domstatus: + rc =3D -EOPNOTSUPP; + break; +#endif /* CONFIG_GDBSX */ =20 case XEN_DOMCTL_setvcpuextstate: case XEN_DOMCTL_getvcpuextstate: --=20 2.11.0