Commit 751413ea authored by Helmut Schaa's avatar Helmut Schaa Committed by Johannes Berg
Browse files

mac80211: skip radiotap space calculation if no monitor exists



The radiotap header length "needed_headroom" is only required if we're
sending the skb to a monitor interface. Hence, move the calculation a
bit later so the calculation can be skipped if no monitor interface is
present.

Signed-off-by: default avatarHelmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent ab9d6e4f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -378,9 +378,6 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
	 * the SKB because it has a bad FCS/PLCP checksum.
	 */

	/* room for the radiotap header based on driver features */
	needed_headroom = ieee80211_rx_radiotap_space(local, status);

	if (local->hw.flags & IEEE80211_HW_RX_INCLUDES_FCS)
		present_fcs_len = FCS_LEN;

@@ -399,6 +396,9 @@ ieee80211_rx_monitor(struct ieee80211_local *local, struct sk_buff *origskb,
		return remove_monitor_info(local, origskb);
	}

	/* room for the radiotap header based on driver features */
	needed_headroom = ieee80211_rx_radiotap_space(local, status);

	if (should_drop_frame(origskb, present_fcs_len)) {
		/* only need to expand headroom if necessary */
		skb = origskb;