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

Re: [PATCH] xen/kexec: return error code for unknown hypercalls


  • To: Roger Pau Monne <roger.pau@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Fri, 6 Feb 2026 18:35:32 +0000
  • 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=vEYlH1SHa7WJYszZwkbqaLMCrD31e4e2YYLmFr7tt48=; b=GK789rFxV+OtFASdi4EK+F7jx05/XAakbH3hgT4mJUuwQzU0+VYZMXjkr3Jd1EZmM74JUk4c0A8jgaKzLIbQTqQbH3nVm5+VH1o1wCcDoC/SclyqiQJGYZOs7PFQVfhY65/3eNpe2ZIAAmVV07Ye9KvEeBMDwi6wC2NJTVSQbBMWPHjiNfBOZp5jfzLXzZoYT2/K8IDFROrX+QjOpmSTbZnPczeIjOw8aQbrJyXRyZDBkgdmR6MhTsb06bqE59jMQmpc0wzywY12N3+ocwxTnm1eZiOachdw/X9vrFygrvZ1hAb322hKSadlaV4Q5qdshRADwXq3ReP5rqj4rLV4pw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=c6g6XfyxkWrsqVAYrwI0ApQGL1U2OX1QTOZQSKdnZgf3XWpWpqlxtTGkUfNr0wHdz+oKA6AtGS39I/aUBgek5toQMVNYTQqzfZUy2F6KMUCMHDXRPZwBLZzRH95hzl5hnt57ngfERvvA9tKUAXNBADzOUeZ7OSxHJRuhAApYZJZjtrs79f4r3g9gDa2hAURKoaufZC6G4hY2875yDqYMMdXDYroWr96RezZhLNGWtR1QYzjgt7xwzx3kSAdJ+eZbrKa0J45SNJj1FpSEX2PyIMV+lwlgl7HEpUlW6qPmkrrZPZ89rgfoyFHi5q3Xr22ElyI+6aW2fPqpcFrgnuGETQ==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Fri, 06 Feb 2026 18:35:46 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 06/02/2026 6:31 pm, Roger Pau Monne wrote:
> Currently do_kexec_op_internal() will return 0 for unknown hypercalls.  Fix
> this by returning -EOPNOTSUPP instead.
>
> Fixes: d046f361dc93 ("Xen Security Modules: XSM")
> Reported-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
> Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>

Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

> ---
> Arguably the error code for unsupported kexec hypercalls was already wonky
> before the XSM addiiton, as it would return -EINVAL.  It's however way
> worse after the XSM addition, as it returns 0.
> ---
>  xen/common/kexec.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/xen/common/kexec.c b/xen/common/kexec.c
> index 84fe8c35976e..8f52c5506d4a 100644
> --- a/xen/common/kexec.c
> +++ b/xen/common/kexec.c
> @@ -1217,9 +1217,8 @@ static int do_kexec_op_internal(unsigned long op,
>                                  XEN_GUEST_HANDLE_PARAM(void) uarg,
>                                  bool compat)
>  {
> -    int ret = -EINVAL;
> +    int ret = xsm_kexec(XSM_PRIV);
>  
> -    ret = xsm_kexec(XSM_PRIV);
>      if ( ret )
>          return ret;

Personally, I'd just have `int ret;` and leave the xsm_kexec() call as
it was.  That leaves the slightly more normal pattern intact.

>  
> @@ -1258,6 +1257,10 @@ static int do_kexec_op_internal(unsigned long op,
>      case KEXEC_CMD_kexec_status:
>          ret = kexec_status(uarg);
>          break;
> +
> +    default:
> +        ret = -EOPNOTSUPP;
> +        break;
>      }
>  
>      clear_bit(KEXEC_FLAG_IN_HYPERCALL, &kexec_flags);




 


Rackspace

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