|
@@ -1804,7 +1804,7 @@ static int nvme_submit_io(struct nvme_ns *ns, struct nvme_user_io __user *uio)
|
|
|
|
|
|
length = (io.nblocks + 1) << ns->lba_shift;
|
|
length = (io.nblocks + 1) << ns->lba_shift;
|
|
meta_len = (io.nblocks + 1) * ns->ms;
|
|
meta_len = (io.nblocks + 1) * ns->ms;
|
|
- metadata = (void __user *)(unsigned long)io.metadata;
|
|
|
|
|
|
+ metadata = (void __user *)(uintptr_t)io.metadata;
|
|
write = io.opcode & 1;
|
|
write = io.opcode & 1;
|
|
|
|
|
|
if (ns->ext) {
|
|
if (ns->ext) {
|
|
@@ -1844,7 +1844,7 @@ static int nvme_submit_io(struct nvme_ns *ns, struct nvme_user_io __user *uio)
|
|
c.rw.metadata = cpu_to_le64(meta_dma);
|
|
c.rw.metadata = cpu_to_le64(meta_dma);
|
|
|
|
|
|
status = __nvme_submit_sync_cmd(ns->queue, &c, NULL,
|
|
status = __nvme_submit_sync_cmd(ns->queue, &c, NULL,
|
|
- (void __user *)io.addr, length, NULL, 0);
|
|
|
|
|
|
+ (void __user *)(uintptr_t)io.addr, length, NULL, 0);
|
|
unmap:
|
|
unmap:
|
|
if (meta) {
|
|
if (meta) {
|
|
if (status == NVME_SC_SUCCESS && !write) {
|
|
if (status == NVME_SC_SUCCESS && !write) {
|
|
@@ -1886,7 +1886,7 @@ static int nvme_user_cmd(struct nvme_dev *dev, struct nvme_ns *ns,
|
|
timeout = msecs_to_jiffies(cmd.timeout_ms);
|
|
timeout = msecs_to_jiffies(cmd.timeout_ms);
|
|
|
|
|
|
status = __nvme_submit_sync_cmd(ns ? ns->queue : dev->admin_q, &c,
|
|
status = __nvme_submit_sync_cmd(ns ? ns->queue : dev->admin_q, &c,
|
|
- NULL, (void __user *)cmd.addr, cmd.data_len,
|
|
|
|
|
|
+ NULL, (void __user *)(uintptr_t)cmd.addr, cmd.data_len,
|
|
&cmd.result, timeout);
|
|
&cmd.result, timeout);
|
|
if (status >= 0) {
|
|
if (status >= 0) {
|
|
if (put_user(cmd.result, &ucmd->result))
|
|
if (put_user(cmd.result, &ucmd->result))
|