if (i + 1 < data->dma_nents) {
next_addr = ib_sg_dma_address(ibdev, sg_next(sg));
/* are i, i+1 fragments of the same page? */
- if (end_addr == next_addr)
+ if (end_addr == next_addr) {
+ cnt++;
continue;
- else if (!IS_4K_ALIGNED(end_addr)) {
+ } else if (!IS_4K_ALIGNED(end_addr)) {
ret_len = cnt + 1;
break;
}
}
+ cnt++;
}
if (i == data->dma_nents)
ret_len = cnt; /* loop ended */