| From 2f93c7022b253212788b03aaa5216bbc9af9c8be Mon Sep 17 00:00:00 2001 |
| From: Dan Carpenter <dan.carpenter@oracle.com> |
| Date: Tue, 3 Dec 2019 12:36:52 +0300 |
| Subject: [PATCH] scsi: mpt3sas: Fix double free in attach error handling |
| |
| commit ee560e7bbab0c10cf3f0e71997fbc354ab2ee5cb upstream. |
| |
| The caller also calls _base_release_memory_pools() on error so it leads to |
| a number of double frees: |
| |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->chain_dma_pool' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->hpr_lookup' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->internal_lookup' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->pcie_sgl_dma_pool' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->reply_dma_pool' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->reply_free_dma_pool' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->reply_post_free_array_dma_pool' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->reply_post_free_dma_pool' double freed |
| drivers/scsi/mpt3sas/mpt3sas_base.c:7207 mpt3sas_base_attach() warn: 'ioc->sense_dma_pool' double freed |
| |
| Fixes: 74522a92bbf0 ("scsi: mpt3sas: Optimize I/O memory consumption in driver.") |
| Link: https://lore.kernel.org/r/20191203093652.gyntgvnkw2udatyc@kili.mountain |
| Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> |
| Acked-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c |
| index f2d61d023bcb..d7038c562edb 100644 |
| --- a/drivers/scsi/mpt3sas/mpt3sas_base.c |
| +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c |
| @@ -4836,7 +4836,6 @@ _base_allocate_memory_pools(struct MPT3SAS_ADAPTER *ioc) |
| &ct->chain_buffer_dma); |
| if (!ct->chain_buffer) { |
| ioc_err(ioc, "chain_lookup: pci_pool_alloc failed\n"); |
| - _base_release_memory_pools(ioc); |
| goto out; |
| } |
| } |
| -- |
| 2.7.4 |
| |