/* pass */;
else
return NULL;
- for (i = 0; i < num_descs; i++) {
+ i = 0;
+ do {
size_t xfer_size = min_t(size_t, len, 1 << ioat->xfercap_log);
desc = ioat2_get_ring_ent(ioat, idx + i);
len -= xfer_size;
dest += xfer_size;
dump_desc_dbg(ioat, desc);
- }
+ } while (++i < num_descs);
desc->txd.flags = flags;
desc->len = total_len;
/* pass */;
else
return NULL;
- for (i = 0; i < num_descs; i += 1 + with_ext) {
+ i = 0;
+ do {
struct ioat_raw_descriptor *descs[2];
size_t xfer_size = min_t(size_t, len, 1 << ioat->xfercap_log);
int s;
len -= xfer_size;
offset += xfer_size;
dump_desc_dbg(ioat, desc);
- }
+ } while ((i += 1 + with_ext) < num_descs);
/* last xor descriptor carries the unmap parameters and fence bit */
desc->txd.flags = flags;
/* pass */;
else
return NULL;
- for (i = 0; i < num_descs; i += 1 + with_ext) {
+ i = 0;
+ do {
struct ioat_raw_descriptor *descs[2];
size_t xfer_size = min_t(size_t, len, 1 << ioat->xfercap_log);
len -= xfer_size;
offset += xfer_size;
- }
+ } while ((i += 1 + with_ext) < num_descs);
/* last pq descriptor carries the unmap parameters and fence bit */
desc->txd.flags = flags;