diff options
author | Christoph Hellwig <hch@lst.de> | 2016-09-14 17:18:55 +0300 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-09-15 17:42:03 +0300 |
commit | da695ba236b993f07a540d35c17f271ef08c89f3 (patch) | |
tree | bcf5c0624f3e3889b8c1284f1965cf90b265b78e /include/linux | |
parent | 7d7e0f90b70f6c5367c2d1c9a7e87dd228bd0816 (diff) | |
download | linux-da695ba236b993f07a540d35c17f271ef08c89f3.tar.xz |
blk-mq: allow the driver to pass in a queue mapping
This allows drivers specify their own queue mapping by overriding the
setup-time function that builds the mq_map. This can be used for
example to build the map based on the MSI-X vector mapping provided
by the core interrupt layer for PCI devices.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/blk-mq.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index f01379f2b0ac..6737fd7946f4 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h @@ -104,6 +104,7 @@ typedef void (busy_iter_fn)(struct blk_mq_hw_ctx *, struct request *, void *, bool); typedef void (busy_tag_iter_fn)(struct request *, void *, bool); typedef int (poll_fn)(struct blk_mq_hw_ctx *, unsigned int); +typedef int (map_queues_fn)(struct blk_mq_tag_set *set); struct blk_mq_ops { @@ -144,6 +145,8 @@ struct blk_mq_ops { init_request_fn *init_request; exit_request_fn *exit_request; reinit_request_fn *reinit_request; + + map_queues_fn *map_queues; }; enum { |