scsi: mpt3sas: Fix ReplyPostFree pool allocation
Currently the driver allocates memory for ReplyPostFree queues in chunks of 16. In resource constrained environments--such as VM with 1 GB RAM and 2 CPUs--memory allocation for ReplyPostFree pools may fail because the driver tries to allocate a memory for 16 ReplyPostFree queues even though the actual number needed is 2. Change the driver to allocate memory for only the actual number of queues needed if the ReplyPostFree queue count is less than 16. Link: https://lore.kernel.org/r/20210201141522.25363-1-sreekanth.reddy@broadcom.com Signed-off-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
e92b0b5edf
commit
d309ae0732
@ -5641,7 +5641,8 @@ _base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc)
|
||||
reply_post_free_sz = ioc->reply_post_queue_depth *
|
||||
sizeof(Mpi2DefaultReplyDescriptor_t);
|
||||
rdpq_sz = reply_post_free_sz * RDPQ_MAX_INDEX_IN_ONE_CHUNK;
|
||||
if (_base_is_controller_msix_enabled(ioc) && !ioc->rdpq_array_enable)
|
||||
if ((_base_is_controller_msix_enabled(ioc) && !ioc->rdpq_array_enable)
|
||||
|| (ioc->reply_queue_count < RDPQ_MAX_INDEX_IN_ONE_CHUNK))
|
||||
rdpq_sz = reply_post_free_sz * ioc->reply_queue_count;
|
||||
ret = base_alloc_rdpq_dma_pool(ioc, rdpq_sz);
|
||||
if (ret == -EAGAIN) {
|
||||
|
Loading…
Reference in New Issue
Block a user