scsi: ipr: Fix missing/incorrect resource cleanup in error case
[ Upstream commit d64c491911322af1dcada98e5b9ee0d87e8c8fee ] Fix missing resource cleanup (when '(--i) == 0') for error case in ipr_alloc_mem() and skip incorrect resource cleanup (when '(--i) == 0') for error case in ipr_request_other_msi_irqs() because variable i started from 1. Link: https://lore.kernel.org/r/20220529153456.4183738-4-cgxu519@mykernel.net Reviewed-by: Dan Carpenter <dan.carpenter@oracle.com> Acked-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: Chengguang Xu <cgxu519@mykernel.net> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
fe0855944a
commit
c481192236
@ -9772,7 +9772,7 @@ static int ipr_alloc_mem(struct ipr_ioa_cfg *ioa_cfg)
|
|||||||
GFP_KERNEL);
|
GFP_KERNEL);
|
||||||
|
|
||||||
if (!ioa_cfg->hrrq[i].host_rrq) {
|
if (!ioa_cfg->hrrq[i].host_rrq) {
|
||||||
while (--i > 0)
|
while (--i >= 0)
|
||||||
dma_free_coherent(&pdev->dev,
|
dma_free_coherent(&pdev->dev,
|
||||||
sizeof(u32) * ioa_cfg->hrrq[i].size,
|
sizeof(u32) * ioa_cfg->hrrq[i].size,
|
||||||
ioa_cfg->hrrq[i].host_rrq,
|
ioa_cfg->hrrq[i].host_rrq,
|
||||||
@ -10045,7 +10045,7 @@ static int ipr_request_other_msi_irqs(struct ipr_ioa_cfg *ioa_cfg,
|
|||||||
ioa_cfg->vectors_info[i].desc,
|
ioa_cfg->vectors_info[i].desc,
|
||||||
&ioa_cfg->hrrq[i]);
|
&ioa_cfg->hrrq[i]);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
while (--i >= 0)
|
while (--i > 0)
|
||||||
free_irq(pci_irq_vector(pdev, i),
|
free_irq(pci_irq_vector(pdev, i),
|
||||||
&ioa_cfg->hrrq[i]);
|
&ioa_cfg->hrrq[i]);
|
||||||
return rc;
|
return rc;
|
||||||
|
Loading…
Reference in New Issue
Block a user