diff options
author | Christoph Hellwig <hch@lst.de> | 2018-11-09 14:49:02 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2018-11-09 16:39:21 +0100 |
commit | 27d420bc475e68c85d567d96caf215999d76fd16 (patch) | |
tree | 42befa0ff6e60ba97d61a113794f59a4ab8fa51c /drivers/block | |
parent | mtip32xx: don't use req->special (diff) | |
download | linux-27d420bc475e68c85d567d96caf215999d76fd16.tar.xz linux-27d420bc475e68c85d567d96caf215999d76fd16.zip |
mtip32xxx: use for_each_sg
Use the proper helper instead of manually iterating the scatterlist,
which is broken in the presence of chained S/G lists.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/mtip32xx/mtip32xx.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/block/mtip32xx/mtip32xx.c b/drivers/block/mtip32xx/mtip32xx.c index e99db2c9118f..a4c44db097e0 100644 --- a/drivers/block/mtip32xx/mtip32xx.c +++ b/drivers/block/mtip32xx/mtip32xx.c @@ -1549,11 +1549,11 @@ static inline void fill_command_sg(struct driver_data *dd, int n; unsigned int dma_len; struct mtip_cmd_sg *command_sg; - struct scatterlist *sg = command->sg; + struct scatterlist *sg; command_sg = command->command + AHCI_CMD_TBL_HDR_SZ; - for (n = 0; n < nents; n++) { + for_each_sg(command->sg, sg, nents, n) { dma_len = sg_dma_len(sg); if (dma_len > 0x400000) dev_err(&dd->pdev->dev, @@ -1563,7 +1563,6 @@ static inline void fill_command_sg(struct driver_data *dd, command_sg->dba_upper = cpu_to_le32((sg_dma_address(sg) >> 16) >> 16); command_sg++; - sg++; } } |