| .. | .. |
|---|
| 476 | 476 | bool more; |
|---|
| 477 | 477 | |
|---|
| 478 | 478 | spin_lock_bh(&q->lock); |
|---|
| 479 | + |
|---|
| 479 | 480 | do { |
|---|
| 480 | 481 | buf = mt76_dma_dequeue(dev, q, true, NULL, NULL, &more); |
|---|
| 481 | 482 | if (!buf) |
|---|
| .. | .. |
|---|
| 483 | 484 | |
|---|
| 484 | 485 | skb_free_frag(buf); |
|---|
| 485 | 486 | } while (1); |
|---|
| 487 | + |
|---|
| 488 | + if (q->rx_head) { |
|---|
| 489 | + dev_kfree_skb(q->rx_head); |
|---|
| 490 | + q->rx_head = NULL; |
|---|
| 491 | + } |
|---|
| 492 | + |
|---|
| 486 | 493 | spin_unlock_bh(&q->lock); |
|---|
| 487 | 494 | |
|---|
| 488 | 495 | if (!q->rx_page.va) |
|---|
| .. | .. |
|---|
| 505 | 512 | mt76_dma_rx_cleanup(dev, q); |
|---|
| 506 | 513 | mt76_dma_sync_idx(dev, q); |
|---|
| 507 | 514 | mt76_dma_rx_fill(dev, q); |
|---|
| 508 | | - |
|---|
| 509 | | - if (!q->rx_head) |
|---|
| 510 | | - return; |
|---|
| 511 | | - |
|---|
| 512 | | - dev_kfree_skb(q->rx_head); |
|---|
| 513 | | - q->rx_head = NULL; |
|---|
| 514 | 515 | } |
|---|
| 515 | 516 | |
|---|
| 516 | 517 | static void |
|---|