From e6249a735d17e210d8f41431ae7387b7cef49bac Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Mon, 19 Dec 2016 16:24:17 -0800 Subject: [PATCH] nvme: add NVME_SC_CANCELLED To properly document how we are using a negative Linux error value to communicate request cancellations inside the driver. Signed-off-by: Christoph Hellwig Acked-by: Keith Busch Signed-off-by: Jens Axboe (cherry picked from commit 297465c873ae8c99180617ca904dc1a4a738f25d) Orabug: 25130845 Conflicts: drivers/nvme/host/pci.c Signed-off-by: Ashok Vairavan Reviewed-by: Martin K. Petersen --- drivers/nvme/host/nvme.h | 10 ++++++++++ drivers/nvme/host/pci.c | 5 +---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index 935b4f27b02e..8ae0d2ebf926 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -19,6 +19,16 @@ #include #include +enum { + /* + * Driver internal status code for commands that were cancelled due + * to timeouts or controller shutdown. The value is negative so + * that it a) doesn't overlap with the unsigned hardware error codes, + * and b) can easily be tested for. + */ + NVME_SC_CANCELLED = -EINTR, +}; + extern unsigned char nvme_io_timeout; #define NVME_IO_TIMEOUT (nvme_io_timeout * HZ) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index c8dec5f6356b..4be8ca9bc53e 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -664,7 +664,7 @@ static void req_completion(struct nvme_queue *nvmeq, void *ctx, } if (req->cmd_type == REQ_TYPE_DRV_PRIV) { if (cmd_rq->ctx == CMD_CTX_CANCELLED) - req->errors = -EINTR; + req->errors = NVME_SC_CANCELLED; else req->errors = status; } else { @@ -2354,12 +2354,9 @@ static int nvme_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (!dev->queues) goto free; -<<<<<<< HEAD INIT_LIST_HEAD(&dev->ctrl.namespaces); mutex_init(&dev->namespaces_mutex); INIT_WORK(&dev->reset_work, nvme_reset_work); -======= ->>>>>>> f3ca80f... nvme: move chardev and sysfs interface to common code dev->dev = get_device(&pdev->dev); pci_set_drvdata(pdev, dev); -- 2.50.1