nvme: Fix handling of metadata_len for NVME_IOCTL_IO_CMD
PATCH 1/1 nvme: Fix handling of metadata_len for NVME_IOCTL_IO_CMD
From: Roland Dreier <[email protected]>
The old code in nvme_user_cmd() passed the userspace virtual address from nvme_passthru_cmd.metadata as the length of the metadata buffer as well as the address to nvme_submit_user_cmd().
--- drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/nvme/host/core.c +1 -1
@@ -1218,7 +1218,7 @@ static int nvme_user_cmd(struct nvme_ctrl *ctrl, struct nvme_ns *ns, effects =nvme_passthru_start (ctrl, ns, cmd.opcode); status =nvme_submit_user_cmd (ns ? ns->queue : ctrl->admin_q, &c, (void __user *)(uintptr_t )cmd.addr, cmd.data_len, - (void __user *)(uintptr_t )cmd.metadata, cmd.metadata, + (void __user *)(uintptr_t )cmd.metadata, cmd.metadata_len,0 , &cmd.result, timeout);nvme_passthru_end (ctrl, effects);
Signature · 1 line
2.17.1
PATCH 1/1 nvme: Fix handling of metadata_len for NVME_IOCTL_IO_CMD
Quoted 26 lines · Roland Dreier
From: Roland Dreier <roland at purestorage.com>
The old code in
nvme_user_cmd()passed the userspace virtual address from nvme_passthru_cmd.metadata as the length of the metadata buffer as well as the address tonvme_submit_user_cmd().Signed-off-by Roland Dreier <roland at purestorage.com>--- drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/nvme/host/core.c +1
-1@@ -1218,7 +1218,7 @@ static int nvme_user_cmd(struct nvme_ctrl *ctrl, struct nvme_ns *ns, effects =nvme_passthru_start (ctrl, ns, cmd.opcode); status =nvme_submit_user_cmd (ns ? ns->queue : ctrl->admin_q, &c, (void __user *)(uintptr_t )cmd.addr, cmd.data_len, - (void __user *)(uintptr_t )cmd.metadata, cmd.metadata, + (void __user *)(uintptr_t )cmd.metadata, cmd.metadata_len,0 , &cmd.result, timeout);nvme_passthru_end (ctrl, effects);Signature · 1 line
2.17.1
Oops, doesn't look like this path was ever tested with metadata! Thanks for the fix.
PATCH 1/1 nvme: Fix handling of metadata_len for NVME_IOCTL_IO_CMD
In reply to Roland DreierThanks, applied to nvme-4.18.