Use the scatterlist iterators and remove direct indexing of the
scatterlist array.

This way allows us to pre-allocate one small scatterlist, which can be
chained with one runtime allocated scatterlist if the pre-allocated one
isn't enough for the whole request.

Cc: Steffen Maier <ma...@linux.ibm.com>
Cc: Benjamin Block <bbl...@linux.ibm.com>
Cc: Martin Schwidefsky <schwidef...@de.ibm.com>
Cc: Heiko Carstens <heiko.carst...@de.ibm.com>
Cc: linux-s...@vger.kernel.org
Signed-off-by: Ming Lei <ming....@redhat.com>
---
 drivers/s390/scsi/zfcp_fc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index 33eddb02ee30..b018b61bd168 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -620,7 +620,7 @@ static void zfcp_fc_sg_free_table(struct scatterlist *sg, 
int count)
 {
        int i;
 
-       for (i = 0; i < count; i++, sg++)
+       for (i = 0; i < count; i++, sg = sg_next(sg))
                if (sg)
                        free_page((unsigned long) sg_virt(sg));
                else
@@ -641,7 +641,7 @@ static int zfcp_fc_sg_setup_table(struct scatterlist *sg, 
int count)
        int i;
 
        sg_init_table(sg, count);
-       for (i = 0; i < count; i++, sg++) {
+       for (i = 0; i < count; i++, sg = sg_next(sg)) {
                addr = (void *) get_zeroed_page(GFP_KERNEL);
                if (!addr) {
                        zfcp_fc_sg_free_table(sg, i);
-- 
2.20.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to