Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

wlags49_h2: Call dev_kfree/consume_skb_any instead of dev_kfree_skb.

Replace dev_kfree_skb with dev_consume_skb_any in wl_send and
wl_send_dma which can be called in hard irq and other contexts,
on the code paths where the skb was transmitted successfully.

Replace dev_kfree_skb with dev_kfree_skb_any in wl_send_dmay which can
be called in hard irq and other contexts, on the code path where a
skb is dropped.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>

+3 -3
+3 -3
drivers/staging/wlags49_h2/wl_netdev.c
··· 715 715 716 716 /* Free the skb and perform queue cleanup, as the buffer was 717 717 transmitted successfully */ 718 - dev_kfree_skb( lp->txF.skb ); 718 + dev_consume_skb_any( lp->txF.skb ); 719 719 720 720 lp->txF.skb = NULL; 721 721 lp->txF.port = 0; ··· 1730 1730 WL_WDS_NETIF_STOP_QUEUE( lp ); 1731 1731 lp->netif_queue_on = FALSE; 1732 1732 1733 - dev_kfree_skb( skb ); 1733 + dev_kfree_skb_any( skb ); 1734 1734 return 0; 1735 1735 } 1736 1736 } ··· 1755 1755 1756 1756 /* Free the skb and perform queue cleanup, as the buffer was 1757 1757 transmitted successfully */ 1758 - dev_kfree_skb( skb ); 1758 + dev_consume_skb_any( skb ); 1759 1759 1760 1760 return TRUE; 1761 1761 } // wl_send_dma