The module net:sunrpc:cache.c will effectively use the same callback cache_ioctl for pointers passed from file_operations.unlocked_ioctl and proc_ops.proc_ioctl, the pointer passed from file_operations.unlocked_ioctl is of user_uintptr_t type, thus for consistency the argument in .proc_ioctl fp should also be of user_uintptr_t type.
Use user_uintptr_t in proc_fs for the argument instead of the unsigned long type.
Signed-off-by: Pawel Zalewski pzalewski@thegoodpenguin.co.uk --- include/linux/proc_fs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index 81d6e4ec2294..90ef95faf16d 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -36,9 +36,9 @@ struct proc_ops { loff_t (*proc_lseek)(struct file *, loff_t, int); int (*proc_release)(struct inode *, struct file *); __poll_t (*proc_poll)(struct file *, struct poll_table_struct *); - long (*proc_ioctl)(struct file *, unsigned int, unsigned long); + long (*proc_ioctl)(struct file *, unsigned int, user_uintptr_t); #ifdef CONFIG_COMPAT - long (*proc_compat_ioctl)(struct file *, unsigned int, unsigned long); + long (*proc_compat_ioctl)(struct file *, unsigned int, user_uintptr_t); #endif int (*proc_mmap)(struct file *, struct vm_area_struct *); unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);