Re: [PATCH v4 1/1] virt: acrn: Mark the uuid field as unused

From: Greg Kroah-Hartman
Date: Wed Nov 16 2022 - 06:53:17 EST


On Wed, Nov 16, 2022 at 11:22:54AM +0200, Andy Shevchenko wrote:
> After the commits for userspace (see Link tags below) the uuid field is
> not being used in the ACRN code. Update kernel to reflect these changes.
> I.e. we do the following:
> - adding a comment explaining that it's not used anymore
> - replacing the specific type by a raw buffer
> - updating the example code accordingly
>
> The advertised field confused users and actually never been used. So
> the wrong part here is that kernel puts something which userspace never
> used and hence this may confuse a reader of this code.
>
> Link: https://github.com/projectacrn/acrn-hypervisor/commit/da0d24326ed6
> Link: https://github.com/projectacrn/acrn-hypervisor/commit/bb0327e70097
> Fixes: 5b06931d7f8b ("sample/acrn: Introduce a sample of HSM ioctl interface usage")
> Fixes: 9c5137aedd11 ("virt: acrn: Introduce VM management interfaces")
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Acked-by: Rafael J. Wysocki <rafael@xxxxxxxxxx>
> ---
> v4: added tag (Rafael), Cc'ed to Greg (missing in the previous version
> by some reason)
> v3: converted to Link tags (Rafael), explained what was wrong (Rafael)
> v2: added tag (Fei)
>
> include/uapi/linux/acrn.h | 5 ++---
> samples/acrn/vm-sample.c | 3 ---
> 2 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/include/uapi/linux/acrn.h b/include/uapi/linux/acrn.h
> index ccf47ed92500..04fa83647ae5 100644
> --- a/include/uapi/linux/acrn.h
> +++ b/include/uapi/linux/acrn.h
> @@ -12,7 +12,6 @@
> #define _UAPI_ACRN_H
>
> #include <linux/types.h>
> -#include <linux/uuid.h>
>
> #define ACRN_IO_REQUEST_MAX 16
>
> @@ -186,7 +185,7 @@ struct acrn_ioreq_notify {
> * @reserved0: Reserved and must be 0
> * @vcpu_num: Number of vCPU in the VM. Return from hypervisor.
> * @reserved1: Reserved and must be 0
> - * @uuid: UUID of the VM. Pass to hypervisor directly.
> + * @uuid: Reserved (used to be UUID of the VM)

If it's reserved, then don't you need to check for 0?

> * @vm_flag: Flag of the VM creating. Pass to hypervisor directly.
> * @ioreq_buf: Service VM GPA of I/O request buffer. Pass to
> * hypervisor directly.
> @@ -198,7 +197,7 @@ struct acrn_vm_creation {
> __u16 reserved0;
> __u16 vcpu_num;
> __u16 reserved1;
> - guid_t uuid;
> + __u8 uuid[16];

You just changed the type here, so what is that going to break in
userspace that depended on this being of a structure type and now it's
an array?

And no other kernel changes needed? Shouldn't you warn if this field is
set?

thanks,

greg k-h