|
@@ -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;
|