Re: [PATCH 20/24] compat_ioctl: move HDIO ioctl handling into drivers/ide

From: Christoph Hellwig
Date: Thu Dec 12 2019 - 11:29:54 EST


> +static int put_user_long(long val, unsigned long arg)
> +{
> +#ifdef CONFIG_COMPAT
> + if (in_compat_syscall())
> + return put_user(val, (compat_long_t __user *)compat_ptr(arg));
> +#endif
> + return put_user(val, (long __user *)arg);
> +}

We had this

#ifdef CONFIG_COMPAT
if (in_compat_syscall())
...
...
#endif

patter quite frequently. Can we define a in_compat_syscall stub
and make sure compat_ptr and the compat_* types are available available
to clean this up a bit?

> - if (NULL == (void *) arg) {
> + if (NULL == argp) {

if (!argp) {

?