aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2010-06-24 14:25:56 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-28 15:14:51 -0400
commit5548a8a1138c96e3e6f803c9f2c1f9389c2f0ee6 (patch)
tree50e41fdf1df846843713694d8dd51ad431c4620b
parent679db794679baae96ce0a2257daaeaedef4e8352 (diff)
mac80211: use netif_receive_skb in ieee80211_rx callpath
This avoids the extra queueing from calling netif_rx. Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/mac80211/rx.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index ab58a5d66d2e..d70e1a9c4354 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -293,7 +293,7 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
293 skb2 = skb_clone(skb, GFP_ATOMIC); 293 skb2 = skb_clone(skb, GFP_ATOMIC);
294 if (skb2) { 294 if (skb2) {
295 skb2->dev = prev_dev; 295 skb2->dev = prev_dev;
296 netif_rx(skb2); 296 netif_receive_skb(skb2);
297 } 297 }
298 } 298 }
299 299
@@ -304,7 +304,7 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
304 304
305 if (prev_dev) { 305 if (prev_dev) {
306 skb->dev = prev_dev; 306 skb->dev = prev_dev;
307 netif_rx(skb); 307 netif_receive_skb(skb);
308 } else 308 } else
309 dev_kfree_skb(skb); 309 dev_kfree_skb(skb);
310 310
@@ -1578,7 +1578,7 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
1578 /* deliver to local stack */ 1578 /* deliver to local stack */
1579 skb->protocol = eth_type_trans(skb, dev); 1579 skb->protocol = eth_type_trans(skb, dev);
1580 memset(skb->cb, 0, sizeof(skb->cb)); 1580 memset(skb->cb, 0, sizeof(skb->cb));
1581 netif_rx(skb); 1581 netif_receive_skb(skb);
1582 } 1582 }
1583 } 1583 }
1584 1584
@@ -2244,7 +2244,7 @@ static void ieee80211_rx_cooked_monitor(struct ieee80211_rx_data *rx,
2244 skb2 = skb_clone(skb, GFP_ATOMIC); 2244 skb2 = skb_clone(skb, GFP_ATOMIC);
2245 if (skb2) { 2245 if (skb2) {
2246 skb2->dev = prev_dev; 2246 skb2->dev = prev_dev;
2247 netif_rx(skb2); 2247 netif_receive_skb(skb2);
2248 } 2248 }
2249 } 2249 }
2250 2250
@@ -2255,7 +2255,7 @@ static void ieee80211_rx_cooked_monitor(struct ieee80211_rx_data *rx,
2255 2255
2256 if (prev_dev) { 2256 if (prev_dev) {
2257 skb->dev = prev_dev; 2257 skb->dev = prev_dev;
2258 netif_rx(skb); 2258 netif_receive_skb(skb);
2259 skb = NULL; 2259 skb = NULL;
2260 } else 2260 } else
2261 goto out_free_skb; 2261 goto out_free_skb;