> int sed_ioctl(struct opal_dev *dev, unsigned int cmd, unsigned long ptr) > { > + void *ioctl_ptr; > + int ret = -ENOTTY; > void __user *arg = (void __user *)ptr; Can we use this opportunity to clean up the usual ioctl argument mess. Id say pass the "void __user *argp" argument already (nvme_ioctl should have a local variable for it anyway), and then just rename ioctl_ptr variable to the usual short p. > + unsigned int cmd_size = _IOC_SIZE(cmd); > > + ioctl_ptr = memdup_user(arg, cmd_size); cmd_size is only used once, so why not opencode the expression in the argument to memdup_user.