提交 5548a8a1 编写于 作者: J John W. Linville

mac80211: use netif_receive_skb in ieee80211_rx callpath

This avoids the extra queueing from calling netif_rx.
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 679db794
......@@ -293,7 +293,7 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
skb2 = skb_clone(skb, GFP_ATOMIC);
if (skb2) {
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) {
skb->dev = prev_dev;
netif_rx(skb);
netif_receive_skb(skb);
} else
dev_kfree_skb(skb);
......@@ -1578,7 +1578,7 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
/* deliver to local stack */
skb->protocol = eth_type_trans(skb, dev);
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);
if (skb2) {
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) {
skb->dev = prev_dev;
netif_rx(skb);
netif_receive_skb(skb);
skb = NULL;
} else
goto out_free_skb;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册