diff options
author | Sakthivel K <Sakthivel.SaravananKamalRaju@pmcs.com> | 2013-02-04 01:40:02 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-02-22 10:44:40 -0500 |
commit | bfb4809f7fff2f2db3d0de41ea4f49fd3f2f0aa4 (patch) | |
tree | e6fafc6056c5ee6dd7d3b230fe2c09bfa6a6f2d2 /drivers/scsi | |
parent | 5eca4a67b803172eeee7684282348652f9261c5c (diff) |
[SCSI] pm80xx: fix for memory region free
All memory regions are allocated based on variables total_len
and alignment but free was based on element_size.
Signed-off-by: Sakthivel K <DL.Team.PMC.SPC.Linux.open.source@pmcs.com>
Signed-off-by: Anand Kumar S <DL.Team.PMC.SPC.Linux.open.source@pmcs.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/pm8001/pm8001_init.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c index 4c9fe733fe88..3d5e522e00fc 100644 --- a/drivers/scsi/pm8001/pm8001_init.c +++ b/drivers/scsi/pm8001/pm8001_init.c | |||
@@ -140,7 +140,8 @@ static void pm8001_free(struct pm8001_hba_info *pm8001_ha) | |||
140 | for (i = 0; i < USI_MAX_MEMCNT; i++) { | 140 | for (i = 0; i < USI_MAX_MEMCNT; i++) { |
141 | if (pm8001_ha->memoryMap.region[i].virt_ptr != NULL) { | 141 | if (pm8001_ha->memoryMap.region[i].virt_ptr != NULL) { |
142 | pci_free_consistent(pm8001_ha->pdev, | 142 | pci_free_consistent(pm8001_ha->pdev, |
143 | pm8001_ha->memoryMap.region[i].element_size, | 143 | (pm8001_ha->memoryMap.region[i].total_len + |
144 | pm8001_ha->memoryMap.region[i].alignment), | ||
144 | pm8001_ha->memoryMap.region[i].virt_ptr, | 145 | pm8001_ha->memoryMap.region[i].virt_ptr, |
145 | pm8001_ha->memoryMap.region[i].phys_addr); | 146 | pm8001_ha->memoryMap.region[i].phys_addr); |
146 | } | 147 | } |