The skb should be freed by dev_consume_skb_any() in hfcpci_fill_fifo()
when bcs->tx_skb is still used. The bcs->tx_skb is be replaced by
skb_dequeue(&bcs->squeue), so the original bcs->tx_skb should
be consumed(not drop).
Signed-off-by: Huang Zijiang <[email protected]>
---
drivers/isdn/hisax/hfc_pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/isdn/hisax/hfc_pci.c b/drivers/isdn/hisax/hfc_pci.c
index ea0e4c6..7f9e8cc 100644
--- a/drivers/isdn/hisax/hfc_pci.c
+++ b/drivers/isdn/hisax/hfc_pci.c
@@ -657,7 +657,7 @@ hfcpci_fill_fifo(struct BCState *bcs)
schedule_event(bcs, B_ACKPENDING);
}
- dev_kfree_skb_any(bcs->tx_skb);
+ dev_consume_skb_any(bcs->tx_skb);
bcs->tx_skb = skb_dequeue(&bcs->squeue); /* fetch next data */
}
test_and_clear_bit(BC_FLG_BUSY, &bcs->Flag);
--
1.8.3.1
From: Huang Zijiang <[email protected]>
Date: Thu, 14 Feb 2019 14:39:59 +0800
> The skb should be freed by dev_consume_skb_any() in hfcpci_fill_fifo()
> when bcs->tx_skb is still used. The bcs->tx_skb is be replaced by
> skb_dequeue(&bcs->squeue), so the original bcs->tx_skb should
> be consumed(not drop).
>
> Signed-off-by: Huang Zijiang <[email protected]>
Applied, thanks.