- VHOST_LOG_DATA(DEBUG, "(%d) current index %d | end index %d\n",
- dev->vid, vq->last_avail_idx,
- vq->last_avail_idx + num_descs);
-
- slot_idx = (vq->async_pkts_idx + num_async_pkts) % vq->size;
- if (it_pool[it_idx].count) {
- uint16_t from, to;
-
- async_descs_idx += num_descs;
- async_fill_desc(&tdes[pkt_burst_idx++],
- &it_pool[it_idx], &it_pool[it_idx + 1]);
- pkts_info[slot_idx].descs = num_descs;
- pkts_info[slot_idx].nr_buffers = num_buffers;
- pkts_info[slot_idx].mbuf = pkts[pkt_idx];
- num_async_pkts++;
- iovec_idx += it_pool[it_idx].nr_segs;
- it_idx += 2;
-
- segs_await += it_pool[it_idx].nr_segs;
-
- /**
- * recover shadow used ring and keep DMA-occupied
- * descriptors.
- */
- from = vq->shadow_used_idx - num_buffers;
- to = vq->async_buffer_idx_packed % vq->size;
- store_dma_desc_info_packed(vq->shadow_used_packed,
- vq->async_buffers_packed, vq->size, from, to, num_buffers);