mirror of
https://github.com/torvalds/linux.git
synced 2026-05-26 08:02:27 +02:00
nvme-pci: do not try to add queue maps at runtime
The block layer allocates the set's maps once. We can't add special purpose queues at runtime if they weren't allocated at initialization time. Tested-by: Kanchan Joshi <joshi.k@samsung.com> Reviewed-by: Kanchan Joshi <joshi.k@samsung.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
parent
4735b510a0
commit
baa47c4f89
|
|
@ -2902,6 +2902,18 @@ static int nvme_setup_io_queues(struct nvme_dev *dev)
|
|||
dev->nr_write_queues = write_queues;
|
||||
dev->nr_poll_queues = poll_queues;
|
||||
|
||||
if (dev->ctrl.tagset) {
|
||||
/*
|
||||
* The set's maps are allocated only once at initialization
|
||||
* time. We can't add special queues later if their mq_map
|
||||
* wasn't preallocated.
|
||||
*/
|
||||
if (dev->ctrl.tagset->nr_maps < 3)
|
||||
dev->nr_poll_queues = 0;
|
||||
if (dev->ctrl.tagset->nr_maps < 2)
|
||||
dev->nr_write_queues = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* The initial number of allocated queue slots may be too large if the
|
||||
* user reduced the special queue parameters. Cap the value to the
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user