]> git.baikalelectronics.ru Git - kernel.git/commit
nvme-pci: align io queue count with allocted nvme_queue in nvme_probe
authorWeiping Zhang <zhangweiping@didiglobal.com>
Sat, 2 May 2020 07:29:41 +0000 (15:29 +0800)
committerJens Axboe <axboe@kernel.dk>
Sat, 9 May 2020 22:18:36 +0000 (16:18 -0600)
commitb2ec4be638ee9e6242a77cb1a80b8fb0b2976399
tree35cf53078fc013e32ed3defa0cfd939ea9f8f799
parentff4c73d5eb68f34b78a005981c870f8d294d7fa3
nvme-pci: align io queue count with allocted nvme_queue in nvme_probe

Since commit d3af0c259529 ("nvme-pci: allocate device queues storage
space at probe"), nvme_alloc_queue does not alloc the nvme queues
itself anymore.

If the write/poll_queues module parameters are changed at runtime to
values larger than the number of allocated queues in nvme_probe,
nvme_alloc_queue will access unallocated memory.

Add a new nr_allocated_queues member to struct nvme_dev to record how
many queues were alloctated in nvme_probe to avoid using more than the
allocated queues after a reset following a change to the
write/poll_queues module parameters.

Also add nr_write_queues and nr_poll_queues members to allow refreshing
the number of write and poll queues based on a change to the module
parameters when resetting the controller.

Fixes: d3af0c259529 ("nvme-pci: allocate device queues storage space at probe")
Signed-off-by: Weiping Zhang <zhangweiping@didiglobal.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Max Gurtovoy <maxg@mellanox.com>
[hch: add nvme_max_io_queues, update the commit message]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/nvme/host/pci.c