nvme: pass a user pointer to nvme_nvm_ioctl
Pass the proper user pointer instead of the not all that useful integer representation. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Keith Busch <kbusch@kernel.org> Reviewed-by: Javier González <javier.gonz@samsung.com>
This commit is contained in:
parent
9953ab0c5a
commit
d7790d3739
@ -1819,7 +1819,7 @@ static int nvme_ioctl(struct block_device *bdev, fmode_t mode,
|
||||
break;
|
||||
default:
|
||||
if (ns->ndev)
|
||||
ret = nvme_nvm_ioctl(ns, cmd, arg);
|
||||
ret = nvme_nvm_ioctl(ns, cmd, argp);
|
||||
else
|
||||
ret = -ENOTTY;
|
||||
}
|
||||
|
@ -930,15 +930,15 @@ static int nvme_nvm_user_vcmd(struct nvme_ns *ns, int admin,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int nvme_nvm_ioctl(struct nvme_ns *ns, unsigned int cmd, unsigned long arg)
|
||||
int nvme_nvm_ioctl(struct nvme_ns *ns, unsigned int cmd, void __user *argp)
|
||||
{
|
||||
switch (cmd) {
|
||||
case NVME_NVM_IOCTL_ADMIN_VIO:
|
||||
return nvme_nvm_user_vcmd(ns, 1, (void __user *)arg);
|
||||
return nvme_nvm_user_vcmd(ns, 1, argp);
|
||||
case NVME_NVM_IOCTL_IO_VIO:
|
||||
return nvme_nvm_user_vcmd(ns, 0, (void __user *)arg);
|
||||
return nvme_nvm_user_vcmd(ns, 0, argp);
|
||||
case NVME_NVM_IOCTL_SUBMIT_VIO:
|
||||
return nvme_nvm_submit_vio(ns, (void __user *)arg);
|
||||
return nvme_nvm_submit_vio(ns, argp);
|
||||
default:
|
||||
return -ENOTTY;
|
||||
}
|
||||
|
@ -799,7 +799,7 @@ static inline int nvme_update_zone_info(struct nvme_ns *ns, unsigned lbaf)
|
||||
int nvme_nvm_register(struct nvme_ns *ns, char *disk_name, int node);
|
||||
void nvme_nvm_unregister(struct nvme_ns *ns);
|
||||
extern const struct attribute_group nvme_nvm_attr_group;
|
||||
int nvme_nvm_ioctl(struct nvme_ns *ns, unsigned int cmd, unsigned long arg);
|
||||
int nvme_nvm_ioctl(struct nvme_ns *ns, unsigned int cmd, void __user *argp);
|
||||
#else
|
||||
static inline int nvme_nvm_register(struct nvme_ns *ns, char *disk_name,
|
||||
int node)
|
||||
@ -809,7 +809,7 @@ static inline int nvme_nvm_register(struct nvme_ns *ns, char *disk_name,
|
||||
|
||||
static inline void nvme_nvm_unregister(struct nvme_ns *ns) {};
|
||||
static inline int nvme_nvm_ioctl(struct nvme_ns *ns, unsigned int cmd,
|
||||
unsigned long arg)
|
||||
void __user *argp)
|
||||
{
|
||||
return -ENOTTY;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user