enic: make vnic_wq_buf doubly linked
This patch makes vnic_wq_buf doubly liked list. This is needed for dma_mapping error check, in case some frag's dma map fails, we need to move back and remove previously queued buffers. Signed-off-by: Govindarajulu Varadarajan <_govind@gmx.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5164172f33
commit
5e32066d00
|
@ -47,11 +47,14 @@ static int vnic_wq_alloc_bufs(struct vnic_wq *wq)
|
|||
wq->ring.desc_size * buf->index;
|
||||
if (buf->index + 1 == count) {
|
||||
buf->next = wq->bufs[0];
|
||||
buf->next->prev = buf;
|
||||
break;
|
||||
} else if (j + 1 == VNIC_WQ_BUF_BLK_ENTRIES(count)) {
|
||||
buf->next = wq->bufs[i + 1];
|
||||
buf->next->prev = buf;
|
||||
} else {
|
||||
buf->next = buf + 1;
|
||||
buf->next->prev = buf;
|
||||
buf++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -62,6 +62,7 @@ struct vnic_wq_buf {
|
|||
uint8_t cq_entry; /* Gets completion event from hw */
|
||||
uint8_t desc_skip_cnt; /* Num descs to occupy */
|
||||
uint8_t compressed_send; /* Both hdr and payload in one desc */
|
||||
struct vnic_wq_buf *prev;
|
||||
};
|
||||
|
||||
/* Break the vnic_wq_buf allocations into blocks of 32/64 entries */
|
||||
|
|
Loading…
Reference in a new issue