diff options
author | Jens Axboe | 2018-12-19 16:08:41 +0100 |
---|---|---|
committer | Jens Axboe | 2018-12-19 16:08:41 +0100 |
commit | 499aeb45b2e225e423ef333ec68bd9b33a42c8be (patch) | |
tree | 896081abe12f6fd5b12c79515dbc2b08457dc6f3 /include | |
parent | blk-mq: enable IO poll if .nr_queues of type poll > 0 (diff) | |
parent | nvme-pci: trace SQ status on completions (diff) | |
download | kernel-qcow2-linux-499aeb45b2e225e423ef333ec68bd9b33a42c8be.tar.gz kernel-qcow2-linux-499aeb45b2e225e423ef333ec68bd9b33a42c8be.tar.xz kernel-qcow2-linux-499aeb45b2e225e423ef333ec68bd9b33a42c8be.zip |
Merge branch 'nvme-4.21' of git://git.infradead.org/nvme into for-4.21/block
Pull last batch of NVMe updates for 4.21 from Christoph:
"This contains a series from Sagi to restore poll support for nvme-rdma,
a new tracepoint from yupeng and various fixes."
* 'nvme-4.21' of git://git.infradead.org/nvme:
nvme-pci: trace SQ status on completions
nvme-rdma: implement polling queue map
nvme-fabrics: allow user to pass in nr_poll_queues
nvme-fabrics: allow nvmf_connect_io_queue to poll
nvme-core: optionally poll sync commands
block: make request_to_qc_t public
nvme-tcp: fix spelling mistake "attepmpt" -> "attempt"
nvme-tcp: fix endianess annotations
nvmet-tcp: fix endianess annotations
nvme-pci: refactor nvme_poll_irqdisable to make sparse happy
nvme-pci: only set nr_maps to 2 if poll queues are supported
nvmet: use a macro for default error location
nvmet: fix comparison of a u16 with -1
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blk-mq.h | 10 | ||||
-rw-r--r-- | include/linux/blk_types.h | 11 |
2 files changed, 10 insertions, 11 deletions
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index d3c0a0d2680b..0e030f5f76b6 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h @@ -357,4 +357,14 @@ static inline void *blk_mq_rq_to_pdu(struct request *rq) for ((i) = 0; (i) < (hctx)->nr_ctx && \ ({ ctx = (hctx)->ctxs[(i)]; 1; }); (i)++) +static inline blk_qc_t request_to_qc_t(struct blk_mq_hw_ctx *hctx, + struct request *rq) +{ + if (rq->tag != -1) + return rq->tag | (hctx->queue_num << BLK_QC_T_SHIFT); + + return rq->internal_tag | (hctx->queue_num << BLK_QC_T_SHIFT) | + BLK_QC_T_INTERNAL; +} + #endif diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h index fc99474ac968..5c7e7f859a24 100644 --- a/include/linux/blk_types.h +++ b/include/linux/blk_types.h @@ -425,17 +425,6 @@ static inline bool blk_qc_t_valid(blk_qc_t cookie) return cookie != BLK_QC_T_NONE; } -static inline blk_qc_t blk_tag_to_qc_t(unsigned int tag, unsigned int queue_num, - bool internal) -{ - blk_qc_t ret = tag | (queue_num << BLK_QC_T_SHIFT); - - if (internal) - ret |= BLK_QC_T_INTERNAL; - - return ret; -} - static inline unsigned int blk_qc_t_to_queue_num(blk_qc_t cookie) { return (cookie & ~BLK_QC_T_INTERNAL) >> BLK_QC_T_SHIFT; |