diff options
author | John W. Linville <linville@tuxdriver.com> | 2010-06-24 14:25:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-06-28 15:14:51 -0400 |
commit | 5548a8a1138c96e3e6f803c9f2c1f9389c2f0ee6 (patch) | |
tree | 50e41fdf1df846843713694d8dd51ad431c4620b | |
parent | 679db794679baae96ce0a2257daaeaedef4e8352 (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.c | 10 |
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; |