move nvme_cancel_io() to common code
v2 cover move nvme_cancel_io() to common code
From: Ming Lin <[email protected]>
So it can be used by fabrics driver also.
v2:
- not declare "ctrl"
- rename nvme_cancel_io to nvme_cancel_request
Ming Lin (2):
nvme: update and rename nvme_cancel_io to nvme_cancel_request
nvme: move nvme_cancel_request() to common code
drivers/nvme/host/core.c | 17 +++++++++++++++++ drivers/nvme/host/nvme.h | 1 + drivers/nvme/host/pci.c | 20 ++------------------ 3 files changed, 20 insertions(+), 18 deletions(-)
Signature · 1 line
1.9.1
PATCH v2 1/2 nvme: update and rename nvme_cancel_io to nvme_cancel_request
From: Ming Lin <[email protected]>
nvme_cancel_io is a bit confusing (given the distinction of io/admin), so rename it to nvme_cancel_request.
And update it a bit to pass in struct nvme_ctrl, so it can be used by Fabrics driver also.
--- drivers/nvme/host/pci.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/nvme/host/pci.c +4 -4
@@ -925,14 +925,14 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)return BLK_EH_RESET_TIMER ; } -static void nvme_cancel_io (struct request *req,void *data,bool reserved) +static void nvme_cancel_request (struct request *req,void *data,bool reserved) {int status;if (!blk_mq_request_started (req))return ; -dev_dbg_ratelimited (((struct nvme_dev *) data)->ctrl.device, +dev_dbg_ratelimited (((struct nvme_ctrl *) data)->device,"Cancelling I/O %d" , req->tag); status =NVME_SC_ABORT_REQ ;
@@ -1720,8 +1720,8 @@ static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown) }nvme_pci_disable (dev); -blk_mq_tagset_busy_iter (&dev->tagset, nvme_cancel_io, dev); -blk_mq_tagset_busy_iter (&dev->admin_tagset, nvme_cancel_io, dev); +blk_mq_tagset_busy_iter (&dev->tagset, nvme_cancel_request, &dev->ctrl); +blk_mq_tagset_busy_iter (&dev->admin_tagset, nvme_cancel_request, &dev->ctrl);mutex_unlock (&dev->shutdown_lock); }
Signature · 1 line
1.9.1
PATCH v2 1/2 nvme: update and rename nvme_cancel_io to nvme_cancel_request
Quoted 9 lines · Ming Lin
From: Ming Lin <ming.l at samsung.com>
nvme_cancel_iois a bit confusing (given the distinction of io/admin), so rename it tonvme_cancel_request.And update it a bit to pass in struct
nvme_ctrl, so it can be used by Fabrics driver also.Signed-off-by Ming Lin <ming.l at samsung.com>
Signature · 6 lines
Johannes Thumshirn Storage jthumshirn at suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg GF: Felix Imend?rffer, Jane Smithard, Graham Norton HRB 21284 (AG N?rnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
PATCH v2 2/2 nvme: move nvme_cancel_request() to common code
In reply to Ming LinFrom: Ming Lin <[email protected]>
So it can be used by fabrics driver also.
--- drivers/nvme/host/core.c | 17 +++++++++++++++++ drivers/nvme/host/nvme.h | 1 + drivers/nvme/host/pci.c | 16 ---------------- 3 files changed, 18 insertions(+), 16 deletions(-)
drivers/nvme/host/core.c +17 -0
@@ -59,6 +59,23 @@ static DEFINE_SPINLOCK(dev_list_lock);static struct class *nvme_class; +void nvme_cancel_request (struct request *req,void *data,bool reserved) +{ +int status; + +if (!blk_mq_request_started (req)) +return ; + +dev_dbg_ratelimited (((struct nvme_ctrl *) data)->device, +"Cancelling I/O %d" , req->tag); + + status =NVME_SC_ABORT_REQ ; +if (blk_queue_dying (req->q)) + status |=NVME_SC_DNR ; +blk_mq_complete_request (req, status); +} +EXPORT_SYMBOL_GPL (nvme_cancel_request); +bool nvme_change_ctrl_state (struct nvme_ctrl *ctrl,enum nvme_ctrl_state new_state) {
drivers/nvme/host/nvme.h +1 -0
@@ -229,6 +229,7 @@ static inline bool nvme_req_needs_retry(struct request *req, u16 status) (jiffies - req->start_time) < req->timeout; } +void nvme_cancel_request (struct request *req,void *data,bool reserved);bool nvme_change_ctrl_state (struct nvme_ctrl *ctrl,enum nvme_ctrl_state new_state);int nvme_disable_ctrl (struct nvme_ctrl *ctrl,u64 cap);
drivers/nvme/host/pci.c +0 -16
@@ -925,22 +925,6 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)return BLK_EH_RESET_TIMER ; } -static void nvme_cancel_request (struct request *req,void *data,bool reserved) -{ -int status; - -if (!blk_mq_request_started (req)) -return ; - -dev_dbg_ratelimited (((struct nvme_ctrl *) data)->device, -"Cancelling I/O %d" , req->tag); - - status =NVME_SC_ABORT_REQ ; -if (blk_queue_dying (req->q)) - status |=NVME_SC_DNR ; -blk_mq_complete_request (req, status); -} -static void nvme_free_queue (struct nvme_queue *nvmeq) { dma_free_coherent(nvmeq->q_dmadev, CQ_SIZE(nvmeq->q_depth),
Signature · 1 line
1.9.1
PATCH v2 2/2 nvme: move nvme_cancel_request() to common code
Quoted 5 lines · Ming Lin
From: Ming Lin <ming.l at samsung.com>
So it can be used by fabrics driver also.
Signed-off-by Ming Lin <ming.l at samsung.com>
Signature · 6 lines
Johannes Thumshirn Storage jthumshirn at suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg GF: Felix Imend?rffer, Jane Smithard, Graham Norton HRB 21284 (AG N?rnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
v2 cover move nvme_cancel_io() to common code
In reply to Ming LinQuoted 11 lines · Ming Lin
From: Ming Lin <ming.l at samsung.com>
So it can be used by fabrics driver also.
v2:
- not declare "ctrl"
- renamenvme_cancel_iotonvme_cancel_requestMing Lin (2):
nvme: update and renamenvme_cancel_iotonvme_cancel_request
nvme: movenvme_cancel_request()to common code
Hi Keith,
Are you OK with these 2 patches?
Thanks,
Ming
Quoted 14 lines
drivers/nvme/host/core.c | 17 +++++++++++++++++ drivers/nvme/host/nvme.h | 1 + drivers/nvme/host/pci.c | 20 ++------------------ 3 files changed, 20 insertions(+), 18 deletions(-)--
1.9.1_______________________________________________
Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
v2 cover move nvme_cancel_io() to common code
Quoted 13 lines · Ming Lin
Quoted 11 lines · Ming Lin
From: Ming Lin <ming.l at samsung.com>
So it can be used by fabrics driver also.
v2:
- not declare "ctrl"
- renamenvme_cancel_iotonvme_cancel_requestMing Lin (2):
nvme: update and renamenvme_cancel_iotonvme_cancel_request
nvme: movenvme_cancel_request()to common code
Quoted 6 lines
Hi Keith,
Are you OK with these 2 patches?
Thanks,
Ming
Looks fine to me.
v2 cover move nvme_cancel_io() to common code
In reply to Ming LinQuoted 11 lines · Ming Lin
From: Ming Lin <ming.l at samsung.com>
So it can be used by fabrics driver also.
v2:
- not declare "ctrl"
- renamenvme_cancel_iotonvme_cancel_requestMing Lin (2):
nvme: update and renamenvme_cancel_iotonvme_cancel_request
nvme: movenvme_cancel_request()to common code
Added for 4.8, thanks.
Signature · 1 line
Jens Axboe