[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] x86/shadow: Delete the none.c dummy file


  • To: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
  • From: Roger Pau Monné <roger.pau@xxxxxxxxxx>
  • Date: Mon, 9 Feb 2026 15:42:43 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/O6ZHyTlRS+Z6itupY7eGYrVktQGBX8QqkBHQyVLAYQ=; b=eZH1GufyL5ccauQE5oxK/HyhZeW0oQeKvfD5w5Cl247A5v8ft31SX1VXeb/7xTn03Y94eIfpeyZAziV69LuXnlRwd29cf+3uAeNjAOkLgvigVc7MHojoVzXZ6cQED/pAPCkCI5M5TDjFndMsoZF2PpVApRM1ma761p1LpfWC2WUFI3JXcjDtXeX304aqd7SZJ+aUS4TL4/jJs61gxO1RtPLX2qKHM/RLHR09WYjcUUz8CnhvMg9XJl9d4johQyIUU9ERsQyirw9X2+g01VelorJ4pGndMKE0YEhusiI008di46QPgE56QKI7DGw3l8xTPA1hWVoKgmlifvv5yKRO8w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WX/S8kGfcY2w7KPCDH0qE9JfuqKQWaYcAC2y90aIm95DBlAQQxRrejeYELyILLAOXwDlQmxnloTmDwi5Kb6eGYuCrBFbT2HJCoaZl8HHIdGeC9gvLou3QUyY3wwJ/UrRCgrjPS9JwI4B/dXxWMWJhWOxsk6LOnGYzn2xbIe4Bvbl4Yc9vkh/fcO2HvssRrRapqIhBxhiH5GEdMnH3y5XURfiGWTOXLpwUYsVDBbx7qN79g8BF2f+8XXu+cC79CH2TT6Dbn5rAfD6W7JEIY3icdblNzrAilG05b3BtI1v9tK+4ZpunLtN6FpdS4CwAUIobkhLBtgXN0jdQqWTFogQ+g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>
  • Delivery-date: Mon, 09 Feb 2026 14:42:56 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Mon, Feb 09, 2026 at 11:41:02AM +0100, Alejandro Vallejo wrote:
> It only has 2 callers, both of which can be conditionally removed.
> 
> Signed-off-by: Alejandro Vallejo <alejandro.garciavallejo@xxxxxxx>
> ---
> I'd be ok conditionalising the else branch on...
> 
>     IS_ENABLED(CONFIG_SHADOW_PAGING )|| IS_ENABLED(CONFIG_LOG_DIRTY)
> 
> logdirty patch: 
> https://lore.kernel.org/xen-devel/20260209103118.5885-1-alejandro.garciavallejo@xxxxxxx
> 
> ... to avoid the danger of stale pointers, with required changes elsewhere so
> none.c is only compiled out in that case.
> 
> I'm not sure how much it matters seeing how they are all unreachable.
> ---
>  xen/arch/x86/mm/Makefile        |  2 +-
>  xen/arch/x86/mm/paging.c        |  4 +-
>  xen/arch/x86/mm/shadow/Makefile |  4 --
>  xen/arch/x86/mm/shadow/none.c   | 77 ---------------------------------
>  4 files changed, 3 insertions(+), 84 deletions(-)
>  delete mode 100644 xen/arch/x86/mm/shadow/none.c
> 
> diff --git a/xen/arch/x86/mm/Makefile b/xen/arch/x86/mm/Makefile
> index 960f6e8409..066c4caff3 100644
> --- a/xen/arch/x86/mm/Makefile
> +++ b/xen/arch/x86/mm/Makefile
> @@ -1,4 +1,4 @@
> -obj-y += shadow/
> +obj-$(CONFIG_SHADOW_PAGING) += shadow/
>  obj-$(CONFIG_HVM) += hap/
>  
>  obj-$(CONFIG_ALTP2M) += altp2m.o
> diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
> index 2396f81ad5..5f70254cec 100644
> --- a/xen/arch/x86/mm/paging.c
> +++ b/xen/arch/x86/mm/paging.c
> @@ -634,7 +634,7 @@ int paging_domain_init(struct domain *d)
>       */
>      if ( hap_enabled(d) )
>          hap_domain_init(d);
> -    else
> +    else if ( IS_ENABLED(CONFIG_SHADOW_PAGING) )
>          rc = shadow_domain_init(d);

If you want to go this route you will need to set rc = -EOPNOTSUPP;
prior to the `if ... else if` on the HVM case.  Otherwise when shadow
is compiled out, and the toolstack has not specified the HAP flag at
domain creation you will end up with a domain that doesn't have the
paging operations initialized as paging_domain_init() would return 0
with neither HAP nor shadow having been setup.  That's likely to
trigger NULL pointer dereferences inside of Xen.

Also, seeing the code in arch_sanitise_domain_config() we possibly
want to return an error at that point if toolstack attempts to create
an HVM guest without HAP enabled, and shadow is build time disabled.
I've sent a patch to that end.

Thanks, Roger.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.