Do you have any problems with the stuff in git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git #uaccess.hpsa ? Background: I would rather get rid of compat_alloc_user_space() - it's almost always easier to do without it these days. The only reason it used to be useful had been doing compat ioctl handling far away from where the native ones are dealt with (i.e. in late unlamented fs/compat_ioctl.c). In case of hpsa, it's definitely less headache to just lift the copyin/copyout of {BIG_,}IOCTL_Command_struct into the callers and have compat passthru handlers call the same functions. Without going through "build a native struct on kernel stack, allocate on user stack, copy there, only to have hpsa_ioctl() copy it back into another instance on kernel stack" song and dance. It's v5.7-rc1-based, with 4 commits in it: hpsa passthrough: lift {BIG_,}IOCTL_Command_struct copy{in,out} into hpsa_ioctl() hpsa: don't bother with vmalloc for BIG_IOCTL_Command_struct hpsa: get rid of compat_alloc_user_space() hpsa_ioctl(): tidy up a bit drivers/scsi/hpsa.c | 199 ++++++++++++++++++++++++---------------------------- 1 file changed, 90 insertions(+), 109 deletions(-) Could you give a look to what's in that branch and comment on it?