From: Eric W. Biederman Date: Sun, 16 Mar 2014 01:35:40 +0000 (-0700) Subject: wlags49_h2: Call dev_kfree/consume_skb_any instead of dev_kfree_skb. X-Git-Tag: v3.15-rc1~113^2~96^2~3 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=8d4ade284a41aa827a13242b6fa9b6b68b9b7d71;p=linux.git 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" --- diff --git a/drivers/staging/wlags49_h2/wl_netdev.c b/drivers/staging/wlags49_h2/wl_netdev.c index 965b1c0a4753..69bc0a01ae14 100644 --- a/drivers/staging/wlags49_h2/wl_netdev.c +++ b/drivers/staging/wlags49_h2/wl_netdev.c @@ -715,7 +715,7 @@ int wl_send( struct wl_private *lp ) /* Free the skb and perform queue cleanup, as the buffer was transmitted successfully */ - dev_kfree_skb( lp->txF.skb ); + dev_consume_skb_any( lp->txF.skb ); lp->txF.skb = NULL; lp->txF.port = 0; @@ -1730,7 +1730,7 @@ int wl_send_dma( struct wl_private *lp, struct sk_buff *skb, int port ) WL_WDS_NETIF_STOP_QUEUE( lp ); lp->netif_queue_on = FALSE; - dev_kfree_skb( skb ); + dev_kfree_skb_any( skb ); return 0; } } @@ -1755,7 +1755,7 @@ int wl_send_dma( struct wl_private *lp, struct sk_buff *skb, int port ) /* Free the skb and perform queue cleanup, as the buffer was transmitted successfully */ - dev_kfree_skb( skb ); + dev_consume_skb_any( skb ); return TRUE; } // wl_send_dma