wil6210: fix dma mapping error cleanup in __wil_tx_vring_tso
In case we fail to map one of the TSO SKB fragments, we need to clear all the mapped descriptors, from swhead to swhead+descs_used-1. Change the desc index calculation to i = (swhead + descs_used - 1) % vring->size; to prevent unmpping of (swhead + descs_used) descriptor that wasn't mapped. Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
@@ -1594,7 +1594,7 @@ mem_error:
|
||||
while (descs_used > 0) {
|
||||
struct wil_ctx *ctx;
|
||||
|
||||
i = (swhead + descs_used) % vring->size;
|
||||
i = (swhead + descs_used - 1) % vring->size;
|
||||
d = (struct vring_tx_desc *)&vring->va[i].tx;
|
||||
_desc = &vring->va[i].tx;
|
||||
*d = *_desc;
|
||||
|
Reference in New Issue
Block a user