提交 8d4ade28 编写于 作者: E Eric W. Biederman

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: N"Eric W. Biederman" <ebiederm@xmission.com>
上级 979de8a0
...@@ -715,7 +715,7 @@ int wl_send( struct wl_private *lp ) ...@@ -715,7 +715,7 @@ int wl_send( struct wl_private *lp )
/* Free the skb and perform queue cleanup, as the buffer was /* Free the skb and perform queue cleanup, as the buffer was
transmitted successfully */ transmitted successfully */
dev_kfree_skb( lp->txF.skb ); dev_consume_skb_any( lp->txF.skb );
lp->txF.skb = NULL; lp->txF.skb = NULL;
lp->txF.port = 0; lp->txF.port = 0;
...@@ -1730,7 +1730,7 @@ int wl_send_dma( struct wl_private *lp, struct sk_buff *skb, int port ) ...@@ -1730,7 +1730,7 @@ int wl_send_dma( struct wl_private *lp, struct sk_buff *skb, int port )
WL_WDS_NETIF_STOP_QUEUE( lp ); WL_WDS_NETIF_STOP_QUEUE( lp );
lp->netif_queue_on = FALSE; lp->netif_queue_on = FALSE;
dev_kfree_skb( skb ); dev_kfree_skb_any( skb );
return 0; return 0;
} }
} }
...@@ -1755,7 +1755,7 @@ int wl_send_dma( struct wl_private *lp, struct sk_buff *skb, int port ) ...@@ -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 /* Free the skb and perform queue cleanup, as the buffer was
transmitted successfully */ transmitted successfully */
dev_kfree_skb( skb ); dev_consume_skb_any( skb );
return TRUE; return TRUE;
} // wl_send_dma } // wl_send_dma
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册