4.4-stable review patch.  If anyone has any objections, please let me know.

------------------

[ Upstream commit 98f90debc2b64a40a416dd9794ac2d8de6b43af2 ]

Releasing allocated resource if get configuration data failed.

Signed-off-by: Ching Huang <[email protected]>
Reviewed-by: Johannes Thumshirn <[email protected]>
Reviewed-by: Hannes Reinicke <[email protected]>
Reviewed-by: Tomas Henzl <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 drivers/scsi/arcmsr/arcmsr_hba.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

--- a/drivers/scsi/arcmsr/arcmsr_hba.c
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
@@ -2664,7 +2664,7 @@ static bool arcmsr_hbaB_get_config(struc
        if (!arcmsr_hbaB_wait_msgint_ready(acb)) {
                printk(KERN_NOTICE "arcmsr%d: wait 'get adapter firmware \
                        miscellaneous data' timeout \n", acb->host->host_no);
-               return false;
+               goto err_free_dma;
        }
        count = 8;
        while (count){
@@ -2707,6 +2707,10 @@ static bool arcmsr_hbaB_get_config(struc
        acb->firm_cfg_version = readl(&reg->message_rwbuffer[25]);  
/*firm_cfg_version,25,100-103*/
        /*firm_ide_channels,4,16-19*/
        return true;
+err_free_dma:
+       dma_free_coherent(&acb->pdev->dev, acb->roundup_ccbsize,
+                       acb->dma_coherent2, acb->dma_coherent_handle2);
+       return false;
 }
 
 static bool arcmsr_hbaC_get_config(struct AdapterControlBlock *pACB)


Reply via email to