.. | .. |
---|
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 |
---|