diff options
author | Ming Lin <ming.l@ssi.samsung.com> | 2016-04-25 23:33:20 +0200 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-05-02 17:11:58 +0200 |
commit | 6904242db1ac07403c331b18796f6c2bf5382aec (patch) | |
tree | f185d0bf1e52827df0e6c5f23eea595e91f6dc25 /drivers | |
parent | nvme: move AER handling to common code (diff) | |
download | linux-6904242db1ac07403c331b18796f6c2bf5382aec.tar.xz linux-6904242db1ac07403c331b18796f6c2bf5382aec.zip |
nvme: add helper nvme_cleanup_cmd()
This hides command cleanup into nvme.h and fabrics drivers will
also use it.
Signed-off-by: Ming Lin <ming.l@ssi.samsung.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/nvme/host/nvme.h | 6 | ||||
-rw-r--r-- | drivers/nvme/host/pci.c | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index 631a11e15b7c..114b92873894 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -182,6 +182,12 @@ static inline unsigned nvme_map_len(struct request *rq) return blk_rq_bytes(rq); } +static inline void nvme_cleanup_cmd(struct request *req) +{ + if (req->cmd_flags & REQ_DISCARD) + kfree(req->completion_data); +} + static inline int nvme_error_status(u16 status) { switch (status & 0x7ff) { diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 82a0fc200f44..077e9bf6a1b8 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -321,8 +321,7 @@ static void nvme_free_iod(struct nvme_dev *dev, struct request *req) __le64 **list = iod_list(req); dma_addr_t prp_dma = iod->first_dma; - if (req->cmd_flags & REQ_DISCARD) - kfree(req->completion_data); + nvme_cleanup_cmd(req); if (iod->npages == 0) dma_pool_free(dev->prp_small_pool, list[0], prp_dma); |