]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/block/nvme.c
NVMe: Set result from user admin command
[karo-tx-linux.git] / drivers / block / nvme.c
index af88635e44e4e90a0f7a7e128c7764955945a134..47c860454289b75ad6d112b9f5054e0e2132aa95 100644 (file)
@@ -1237,12 +1237,17 @@ static int nvme_user_admin_cmd(struct nvme_dev *dev,
        if (length != cmd.data_len)
                status = -ENOMEM;
        else
-               status = nvme_submit_admin_cmd(dev, &c, NULL);
+               status = nvme_submit_admin_cmd(dev, &c, &cmd.result);
 
        if (cmd.data_len) {
                nvme_unmap_user_pages(dev, cmd.opcode & 1, iod);
                nvme_free_iod(dev, iod);
        }
+
+       if (!status && copy_to_user(&ucmd->result, &cmd.result,
+                                                       sizeof(cmd.result)))
+               status = -EFAULT;
+
        return status;
 }