From: Li Qiang <liq...@gmail.com>

In NCR_700_detect function, if an error occurs it will return
NULL without freeing the dma non-cosistent memory once allocated.
This patch avoid this.

Signed-off-by: Li Qiang <liq...@gmail.com>
---
 drivers/scsi/53c700.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c
index 95e32a4..d5a2ba3 100644
--- a/drivers/scsi/53c700.c
+++ b/drivers/scsi/53c700.c
@@ -332,8 +332,10 @@ struct Scsi_Host *
                tpnt->proc_name = "53c700";
 
        host = scsi_host_alloc(tpnt, 4);
-       if (!host)
+       if (!host) {
+               dma_free_noncoherent(hostdata->dev, TOTAL_MEM_SIZE, memory, 
pScript);
                return NULL;
+       }
        memset(hostdata->slots, 0, sizeof(struct NCR_700_command_slot)
               * NCR_700_COMMAND_SLOTS_PER_HOST);
        for (j = 0; j < NCR_700_COMMAND_SLOTS_PER_HOST; j++) {
@@ -394,6 +396,7 @@ struct Scsi_Host *
 
        if (scsi_add_host(host, dev)) {
                dev_printk(KERN_ERR, dev, "53c700: scsi_add_host failed\n");
+               dma_free_noncoherent(hostdata->dev, TOTAL_MEM_SIZE, memory, 
pScript);
                scsi_host_put(host);
                return NULL;
        }
-- 
1.8.3.1

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to