Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5548a8a1 authored by John W. Linville's avatar John W. Linville
Browse files

mac80211: use netif_receive_skb in ieee80211_rx callpath



This avoids the extra queueing from calling netif_rx.

Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 679db794
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -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;