Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94f370ca authored by Keith Busch's avatar Keith Busch Committed by Matthew Wilcox
Browse files

NVMe: Use user defined admin ioctl timeout

parent ab3ea5bf
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1392,6 +1392,7 @@ static int nvme_user_admin_cmd(struct nvme_dev *dev,
	struct nvme_command c;
	int status, length;
	struct nvme_iod *uninitialized_var(iod);
	unsigned timeout;

	if (!capable(CAP_SYS_ADMIN))
		return -EACCES;
@@ -1421,10 +1422,13 @@ static int nvme_user_admin_cmd(struct nvme_dev *dev,
								GFP_KERNEL);
	}

	timeout = cmd.timeout_ms ? msecs_to_jiffies(cmd.timeout_ms) :
								ADMIN_TIMEOUT;
	if (length != cmd.data_len)
		status = -ENOMEM;
	else
		status = nvme_submit_admin_cmd(dev, &c, &cmd.result);
		status = nvme_submit_sync_cmd(dev->queues[0], &c, &cmd.result,
								timeout);

	if (cmd.data_len) {
		nvme_unmap_user_pages(dev, cmd.opcode & 1, iod);