Re: [PATCH 1/1] mshv: Add __user attribute to argument passed to access_ok()
From: Nuno Das Neves
Date: Wed Jan 14 2026 - 13:39:21 EST
On 1/14/2026 10:15 AM, mhkelley58@xxxxxxxxx wrote:
> From: Michael Kelley <mhklinux@xxxxxxxxxxx>
>
> access_ok() expects its first argument to have the __user attribute
> since it is checking access to user space. Current code passes an
> argument that lacks that attribute, resulting in 'sparse' flagging
> the incorrect usage. However, the compiler doesn't generate code
> based on the attribute, so there's no actual bug.
>
> In the interest of general correctness and to avoid noise from sparse,
> add the __user attribute. No functional change.
>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202512141339.791TCKnB-lkp@xxxxxxxxx/
> Signed-off-by: Michael Kelley <mhklinux@xxxxxxxxxxx>
> ---
> drivers/hv/mshv_root_main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hv/mshv_root_main.c b/drivers/hv/mshv_root_main.c
> index eff1b21461dc..5673af9fe101 100644
> --- a/drivers/hv/mshv_root_main.c
> +++ b/drivers/hv/mshv_root_main.c
> @@ -1280,7 +1280,7 @@ mshv_map_user_memory(struct mshv_partition *partition,
> long ret;
>
> if (mem.flags & BIT(MSHV_SET_MEM_BIT_UNMAP) ||
> - !access_ok((const void *)mem.userspace_addr, mem.size))
> + !access_ok((const void __user *)mem.userspace_addr, mem.size))
> return -EINVAL;
>
> mmap_read_lock(current->mm);
Reviewed-by: Nuno Das Neves <nunodasneves@xxxxxxxxxxxxxxxxxxx>