pm80xx: fix for memory region free
Subsystems (2)
PATCH v3 1/12 pm80xx: fix for memory region free
Quoted 1 line
From
700bfe79294e9f9e1a5def178af52b13928902a9Mon Sep 17 00:00:00 2001
From: Sakthivel K <[email protected]>
Date: Mon, 4 Feb 2013 12:10:02 +0530
Subject: [PATCH V3 01/12] 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.
--- drivers/scsi/pm8001/pm8001_init.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/scsi/pm8001/pm8001_init.c +2 -1
@@ -140,7 +140,8 @@ static void pm8001_free(struct pm8001_hba_info *pm8001_ha)for (i =0 ; i <USI_MAX_MEMCNT ; i++) {if (pm8001_ha->memoryMap.region[i].virt_ptr !=NULL ) {pci_free_consistent (pm8001_ha->pdev, - pm8001_ha->memoryMap.region[i].element_size, + (pm8001_ha->memoryMap.region[i].total_len + + pm8001_ha->memoryMap.region[i].alignment), pm8001_ha->memoryMap.region[i].virt_ptr, pm8001_ha->memoryMap.region[i].phys_addr); }
Signature · 1 line
1.7.1
Quoted 1 line
From
700bfe79294e9f9e1a5def178af52b13928902a9Mon Sep 17 00:00:00 2001
From: Sakthivel K <[email protected]>
Date: Mon, 4 Feb 2013 12:10:02 +0530
Subject: [PATCH V3 01/12] 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.
--- drivers/scsi/pm8001/pm8001_init.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-)
drivers/scsi/pm8001/pm8001_init.c +2 -1
@@ -140,7 +140,8 @@ static void pm8001_free(struct pm8001_hba_info *pm8001_ha)for (i =0 ; i <USI_MAX_MEMCNT ; i++) {if (pm8001_ha->memoryMap.region[i].virt_ptr !=NULL ) {pci_free_consistent (pm8001_ha->pdev, - pm8001_ha->memoryMap.region[i].element_size, + (pm8001_ha->memoryMap.region[i].total_len + + pm8001_ha->memoryMap.region[i].alignment), pm8001_ha->memoryMap.region[i].virt_ptr, pm8001_ha->memoryMap.region[i].phys_addr); }
Signature · 1 line
1.7.1
James Bottomley
maintainerQuoted 4 lines · Anand
Quoted 1 line
From
700bfe79294e9f9e1a5def178af52b13928902a9Mon Sep 17 00:00:00 2001From: Sakthivel K <[email protected]>
Date: Mon, 4 Feb 2013 12:10:02 +0530
Subject: [PATCH V3 01/12] pm80xx: fix for memory region free
This one is already upstream:
commit bfb4809f7fff2f2db3d0de41ea4f49fd3f2f0aa4
Author: Sakthivel K <[email protected]> Date: Mon Feb 4 12:10:02 2013 +0530
[SCSI] pm80xx: fix for memory region free
James
James Bottomley
maintainerQuoted 7 lines · Anand
Quoted 1 line
From
700bfe79294e9f9e1a5def178af52b13928902a9Mon Sep 17 00:00:00 2001From: Sakthivel K <[email protected]>
Date: Mon, 4 Feb 2013 12:10:02 +0530
Subject: [PATCH V3 01/12] pm80xx: fix for memory region freeAll memory regions are allocated based on variables
total_lenand alignment but free was based onelement_size.
This patch doesn't compile. It's giving
ERROR: "pm8001_80xx_dispatch" [drivers/scsi/pm8001/pm8001.ko] undefined! make[1]: *** [__modpost] Error 1
This is because of this hunk:
Quoted 5 lines
(quoted diff) +1
-0@@ -44,8 +44,16 @@ static struct scsi_transport_template *pm8001_stt; +/**
Review line 56
Quoted 10 lines
(quoted diff) +8
-1+ * chip info structure to identify chip key functionality as + * encryption available/not, no of ports, hw specific function ref + */ static const struct pm8001_chip_info pm8001_chips[] = { - [chip_8001] = { 8, &pm8001_8001_dispatch,}, + [chip_8001] = {0, 8, &pm8001_8001_dispatch,}, + [chip_8008] = {0, 8, &pm8001_80xx_dispatch,}, + [chip_8009] = {1, 8, &pm8001_80xx_dispatch,}, + [chip_8018] = {0, 16, &pm8001_80xx_dispatch,}, + [chip_8019] = {1, 16, &pm8001_80xx_dispatch,},
But the structure isn't defined until patch 06/12. This patch series has to be bisectable and buildable. That means each individual patch must apply, compile and run in sequence. Please fix this.
Thanks,
James
Hi James,
Thanks for the feedback.
We have resubmitted all the patches starting from 1st patch in this V3 patchset. The first patch (given below) does not contain pm8001_80xx_dispatch reference.
Maybe you have already applied patch 1 and 2 from earlier patchset and trying to apply patch 1 from this V3 patchset?
(quoted diff) +0 -0
b/drivers/scsi/pm8001/pm8001_init.c
index 4c9fe73..3d5e522 100644
drivers/scsi/pm8001/pm8001_init.c +0 -0
@@ -140,7 +140,8 @@ static void pm8001_free(struct pm8001_hba_info
*pm8001_ha)
for (i = 0; i < USI_MAX_MEMCNT; i++) {
if (pm8001_ha->memoryMap.region[i].virt_ptr != NULL) {
pci_free_consistent(pm8001_ha->pdev,-
pm8001_ha->memoryMap.region[i].element_size,
+
(pm8001_ha->memoryMap.region[i].total_len +
+
pm8001_ha->memoryMap.region[i].alignment),
pm8001_ha->memoryMap.region[i].virt_ptr,
pm8001_ha->memoryMap.region[i].phys_addr);
}--
1.7.1
We have applied the patches one by one and compiled each one of them in sequence to check for any errors as you had suggested and we did not encounter
compilation errors after applying each patch.
Regards
Anand
-----Original Message-----
From: James Bottomley [mailto:[email protected]]
Sent: Thursday, April 11, 2013 1:43 AM
To: Anand Kumar Santhanam
Cc: [email protected]; Harry Yang; Rich Bono; [email protected]; Sangeetha Gnanasekaran; [email protected]; Vishwanath Maram
Subject: Re: [PATCH V3 01/12] pm80xx: fix for memory region free
Quoted 8 lines · Anand
Quoted 2 lines
From
700bfe79294e9f9e1a5def178af52b13928902a9Mon Sep 17 00:00:00 2001From: Sakthivel K <[email protected]>
Date: Mon, 4 Feb 2013 12:10:02 +0530
Subject: [PATCH V3 01/12] pm80xx: fix for memory region freeAll memory regions are allocated based on variables
total_lenand alignment but free was based onelement_size.
This patch doesn't compile. It's giving
ERROR: "pm8001_80xx_dispatch" [drivers/scsi/pm8001/pm8001.ko] undefined! make[1]: *** [__modpost] Error 1
This is because of this hunk:
Quoted 5 lines
(quoted diff) +1
-0@@ -44,8 +44,16 @@ static struct scsi_transport_template *pm8001_stt; +/**
Review line 56
Quoted 10 lines
(quoted diff) +8
-1+ * chip info structure to identify chip key functionality as + * encryption available/not, no of ports, hw specific function ref +*/ static const struct pm8001_chip_info pm8001_chips[] = { - [chip_8001] = { 8, &pm8001_8001_dispatch,}, + [chip_8001] = {0, 8, &pm8001_8001_dispatch,}, + [chip_8008] = {0, 8, &pm8001_80xx_dispatch,}, + [chip_8009] = {1, 8, &pm8001_80xx_dispatch,}, + [chip_8018] = {0, 16, &pm8001_80xx_dispatch,}, + [chip_8019] = {1, 16, &pm8001_80xx_dispatch,},
But the structure isn't defined until patch 06/12. This patch series has to be bisectable and buildable. That means each individual patch must apply, compile and run in sequence. Please fix this.
Thanks,
James
A message that is not in the archive (sent off-list or not yet received): [email protected]_nt.nt.pmc-sierra.bc.ca
Hi James,
Are you still seeing compilation issue? Do we need to rework on this patchset? Pls let us know.
Regards
Anand
-----Original Message-----
From: Anand Kumar Santhanam
Sent: Thursday, April 11, 2013 12:05 PM
To: 'James Bottomley'
Cc: '[email protected]'; Harry Yang; Rich Bono; '[email protected]'; Sangeetha Gnanasekaran; '[email protected]'; Vishwanath Maram
Subject: RE: [PATCH V3 01/12] pm80xx: fix for memory region free
Hi James,
Thanks for the feedback.
We have resubmitted all the patches starting from 1st patch in this V3 patchset. The first patch (given below) does not contain pm8001_80xx_dispatch reference.
Maybe you have already applied patch 1 and 2 from earlier patchset and trying to apply patch 1 from this V3 patchset?
(quoted diff) +0 -0
b/drivers/scsi/pm8001/pm8001_init.c
index 4c9fe73..3d5e522 100644
drivers/scsi/pm8001/pm8001_init.c +0 -0
@@ -140,7 +140,8 @@ static void pm8001_free(struct pm8001_hba_info
*pm8001_ha)
for (i = 0; i < USI_MAX_MEMCNT; i++) {
if (pm8001_ha->memoryMap.region[i].virt_ptr != NULL) {
pci_free_consistent(pm8001_ha->pdev,-
pm8001_ha->memoryMap.region[i].element_size,
+
(pm8001_ha->memoryMap.region[i].total_len +
+
+ pm8001_ha->memoryMap.region[i].alignment),
pm8001_ha->memoryMap.region[i].virt_ptr,
pm8001_ha->memoryMap.region[i].phys_addr);
}--
1.7.1
We have applied the patches one by one and compiled each one of them in sequence to check for any errors as you had suggested and we did not encounter compilation errors after applying each patch.
Regards
Anand
-----Original Message-----
From: James Bottomley [mailto:[email protected]]
Sent: Thursday, April 11, 2013 1:43 AM
To: Anand Kumar Santhanam
Cc: [email protected]; Harry Yang; Rich Bono; [email protected]; Sangeetha Gnanasekaran; [email protected]; Vishwanath Maram
Subject: Re: [PATCH V3 01/12] pm80xx: fix for memory region free
Quoted 8 lines · Anand
Quoted 2 lines
From
700bfe79294e9f9e1a5def178af52b13928902a9Mon Sep 17 00:00:00 2001From: Sakthivel K <[email protected]>
Date: Mon, 4 Feb 2013 12:10:02 +0530
Subject: [PATCH V3 01/12] pm80xx: fix for memory region freeAll memory regions are allocated based on variables
total_lenand alignment but free was based onelement_size.
This patch doesn't compile. It's giving
ERROR: "pm8001_80xx_dispatch" [drivers/scsi/pm8001/pm8001.ko] undefined! make[1]: *** [__modpost] Error 1
This is because of this hunk:
Quoted 4 lines
(quoted diff) +0
-0@@ -44,8 +44,16 @@ static struct scsi_transport_template *pm8001_stt;
Review line 55
Quoted 10 lines
(quoted diff) +8
-1+/** + * chip info structure to identify chip key functionality as + * encryption available/not, no of ports, hw specific function ref */ static const struct pm8001_chip_info pm8001_chips[] = { - [chip_8001] = { 8, &pm8001_8001_dispatch,}, + [chip_8001] = {0, 8, &pm8001_8001_dispatch,}, + [chip_8008] = {0, 8, &pm8001_80xx_dispatch,}, + [chip_8009] = {1, 8, &pm8001_80xx_dispatch,}, + [chip_8018] = {0, 16, &pm8001_80xx_dispatch,}, + [chip_8019] = {1, 16, &pm8001_80xx_dispatch,},
But the structure isn't defined until patch 06/12. This patch series has to be bisectable and buildable. That means each individual patch must apply, compile and run in sequence. Please fix this.
Thanks,
James