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>
This commit is contained in:
@@ -293,7 +293,7 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
|
|||||||
skb2 = skb_clone(skb, GFP_ATOMIC);
|
skb2 = skb_clone(skb, GFP_ATOMIC);
|
||||||
if (skb2) {
|
if (skb2) {
|
||||||
skb2->dev = prev_dev;
|
skb2->dev = prev_dev;
|
||||||
netif_rx(skb2);
|
netif_receive_skb(skb2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -304,7 +304,7 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
|
|||||||
|
|
||||||
if (prev_dev) {
|
if (prev_dev) {
|
||||||
skb->dev = prev_dev;
|
skb->dev = prev_dev;
|
||||||
netif_rx(skb);
|
netif_receive_skb(skb);
|
||||||
} else
|
} else
|
||||||
dev_kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
|
|
||||||
@@ -1578,7 +1578,7 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
|
|||||||
/* deliver to local stack */
|
/* deliver to local stack */
|
||||||
skb->protocol = eth_type_trans(skb, dev);
|
skb->protocol = eth_type_trans(skb, dev);
|
||||||
memset(skb->cb, 0, sizeof(skb->cb));
|
memset(skb->cb, 0, sizeof(skb->cb));
|
||||||
netif_rx(skb);
|
netif_receive_skb(skb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2244,7 +2244,7 @@ static void ieee80211_rx_cooked_monitor(struct ieee80211_rx_data *rx,
|
|||||||
skb2 = skb_clone(skb, GFP_ATOMIC);
|
skb2 = skb_clone(skb, GFP_ATOMIC);
|
||||||
if (skb2) {
|
if (skb2) {
|
||||||
skb2->dev = prev_dev;
|
skb2->dev = prev_dev;
|
||||||
netif_rx(skb2);
|
netif_receive_skb(skb2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2255,7 +2255,7 @@ static void ieee80211_rx_cooked_monitor(struct ieee80211_rx_data *rx,
|
|||||||
|
|
||||||
if (prev_dev) {
|
if (prev_dev) {
|
||||||
skb->dev = prev_dev;
|
skb->dev = prev_dev;
|
||||||
netif_rx(skb);
|
netif_receive_skb(skb);
|
||||||
skb = NULL;
|
skb = NULL;
|
||||||
} else
|
} else
|
||||||
goto out_free_skb;
|
goto out_free_skb;
|
||||||
|
Reference in New Issue
Block a user