|
@@ -1107,9 +1107,9 @@ sbp2_map_scatterlist(struct sbp2_command_orb *orb, struct fw_device *device,
|
|
|
* elements larger than 65535 bytes, some IOMMUs may merge sg elements
|
|
|
* during DMA mapping, and Linux currently doesn't prevent this.
|
|
|
*/
|
|
|
- for (i = 0, j = 0; i < count; i++) {
|
|
|
- sg_len = sg_dma_len(sg + i);
|
|
|
- sg_addr = sg_dma_address(sg + i);
|
|
|
+ for (i = 0, j = 0; i < count; i++, sg = sg_next(sg)) {
|
|
|
+ sg_len = sg_dma_len(sg);
|
|
|
+ sg_addr = sg_dma_address(sg);
|
|
|
while (sg_len) {
|
|
|
/* FIXME: This won't get us out of the pinch. */
|
|
|
if (unlikely(j >= ARRAY_SIZE(orb->page_table))) {
|