Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755017AbbFLMTD (ORCPT ); Fri, 12 Jun 2015 08:19:03 -0400 Received: from mail-wi0-f175.google.com ([209.85.212.175]:36833 "EHLO mail-wi0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752220AbbFLMS5 convert rfc822-to-8bit (ORCPT ); Fri, 12 Jun 2015 08:18:57 -0400 MIME-Version: 1.0 In-Reply-To: <20150612112826.GC2812@c203.arch.suse.de> References: <1434102153-38581-1-git-send-email-Sreekanth.Reddy@avagotech.com> <1434102153-38581-5-git-send-email-Sreekanth.Reddy@avagotech.com> <20150612112826.GC2812@c203.arch.suse.de> Date: Fri, 12 Jun 2015 17:48:56 +0530 Message-ID: Subject: Re: [PATCH 04/20] [SCSI] mpt3sas: Remove redundancy code while freeing the controller resources. From: Sreekanth Reddy To: Johannes Thumshirn Cc: "jejb@kernel.org" , Christoph Hellwig , "Martin K. Petersen" , "linux-scsi@vger.kernel.org" , "James E.J. Bottomley" , Sathya Prakash , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4333 Lines: 135 On Fri, Jun 12, 2015 at 4:58 PM, Johannes Thumshirn wrote: > On Fri, Jun 12, 2015 at 03:12:16PM +0530, Sreekanth Reddy wrote: >> Removed the redundancy code while freeing the controller resources. >> >> Signed-off-by: Sreekanth Reddy >> --- >> drivers/scsi/mpt3sas/mpt3sas_base.c | 57 +++++++++++++++++++++---------------- >> 1 file changed, 32 insertions(+), 25 deletions(-) >> >> diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c >> index ce57320..32b86bf 100644 >> --- a/drivers/scsi/mpt3sas/mpt3sas_base.c >> +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c >> @@ -1798,6 +1798,36 @@ _base_enable_msix(struct MPT3SAS_ADAPTER *ioc) >> } >> >> /** >> + * mpt3sas_base_unmap_resources - free controller resources >> + * @ioc: per adapter object >> + */ >> +void >> +mpt3sas_base_unmap_resources(struct MPT3SAS_ADAPTER *ioc) >> +{ >> + struct pci_dev *pdev = ioc->pdev; >> + >> + dexitprintk(ioc, printk(MPT3SAS_FMT "%s\n", >> + ioc->name, __func__)); >> + >> + _base_free_irq(ioc); >> + _base_disable_msix(ioc); >> + >> + if (ioc->msix96_vector) >> + kfree(ioc->replyPostRegisterIndex); > > kfree() already checks for zero or a NULL pointer. Sorry Johannes, I didn't get you. If I understand this correctly, you are suggesting to check for NULL pointer before calling kree() API as shown below, if (ioc->msix96_vector && (ioc->replyPostRegisterIndex != NULL)) kfree(ioc->replyPostRegisterIndex); > >> + >> + if (ioc->chip_phys) { >> + iounmap(ioc->chip); >> + ioc->chip_phys = 0; >> + } >> + >> + if (pci_is_enabled(pdev)) { >> + pci_release_selected_regions(ioc->pdev, ioc->bars); >> + pci_disable_pcie_error_reporting(pdev); >> + pci_disable_device(pdev); >> + } >> +} >> + >> +/** >> * mpt3sas_base_map_resources - map in controller resources (io/irq/memap) >> * @ioc: per adapter object >> * >> @@ -1925,14 +1955,7 @@ mpt3sas_base_map_resources(struct MPT3SAS_ADAPTER *ioc) >> return 0; >> >> out_fail: >> - if (ioc->chip_phys) >> - iounmap(ioc->chip); >> - ioc->chip_phys = 0; >> - pci_release_selected_regions(ioc->pdev, ioc->bars); >> - pci_disable_pcie_error_reporting(pdev); >> - pci_disable_device(pdev); >> - if (ioc->msix96_vector) >> - kfree(ioc->replyPostRegisterIndex); >> + mpt3sas_base_unmap_resources(ioc); >> return r; >> } >> >> @@ -4667,8 +4690,6 @@ _base_make_ioc_operational(struct MPT3SAS_ADAPTER *ioc, int sleep_flag) >> void >> mpt3sas_base_free_resources(struct MPT3SAS_ADAPTER *ioc) >> { >> - struct pci_dev *pdev = ioc->pdev; >> - >> dexitprintk(ioc, pr_info(MPT3SAS_FMT "%s\n", ioc->name, >> __func__)); >> >> @@ -4679,21 +4700,7 @@ mpt3sas_base_free_resources(struct MPT3SAS_ADAPTER *ioc) >> ioc->shost_recovery = 0; >> } >> >> - _base_free_irq(ioc); >> - _base_disable_msix(ioc); >> - >> - if (ioc->msix96_vector) >> - kfree(ioc->replyPostRegisterIndex); >> - >> - if (ioc->chip_phys && ioc->chip) >> - iounmap(ioc->chip); >> - ioc->chip_phys = 0; >> - >> - if (pci_is_enabled(pdev)) { >> - pci_release_selected_regions(ioc->pdev, ioc->bars); >> - pci_disable_pcie_error_reporting(pdev); >> - pci_disable_device(pdev); >> - } >> + mpt3sas_base_unmap_resources(ioc); >> return; >> } >> >> -- >> 2.0.2 >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > Johannes Thumshirn Storage > jthumshirn@suse.de +49 911 74053 689 > SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg > GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton > HRB 21284 (AG Nürnberg) -- Regards, Sreekanth -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/