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 <huang.ziji...@zte.com.cn>
---
 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

Reply via email to