Re: [PATCH] staging: vchiq: Avoid mixing bulk_userdata kernel and userspace pointer

From: Stefan Wahren
Date: Tue Jul 30 2024 - 14:05:58 EST


Hi Umang,

Am 30.07.24 um 19:08 schrieb Umang Jain:
In vchiq_dev.c, there are two places where the __user bulk_userdata
pointer to set to a kernel-space pointer which then gives relevant
Sparse warnings as below:

vchiq_dev.c:328:26: warning: incorrect type in assignment (different address spaces)
vchiq_dev.c:328:26: expected void *[assigned] userdata
vchiq_dev.c:328:26: got void [noderef] __user *userdata
vchiq_dev.c:543:47: warning: incorrect type in assignment (different address spaces)
vchiq_dev.c:543:47: expected void [noderef] __user *[addressable] [assigned] bulk_userdata
vchiq_dev.c:543:47: got void *bulk_userdata

This is solved by adding additional functional argument to track the
userspace bulk_userdata separately and passing it accordingly to
completion handlers.
IMO this patch fixes the issue for spare, but don't address the
confusing member naming for humans. It's not clear that "userdata" is a
kernel pointer and "uuserdata" is a pointer to userspace. It would be
nice to avoid the word "user" for kernel pointer in this case.

Thanks