In vchiq_dev.c, there are two places where the __user bulk_userdataIMO this patch fixes the issue for spare, but don't address the
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.