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: Helmut Schaa <helmut.schaa@googlemail.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
ab9d6e4ffe
commit
751413eadc
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue