Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts: drivers/net/wireless/iwlwifi/iwl-agn-tx.c net/mac80211/sta_info.h
This commit is contained in:
@@ -404,11 +404,13 @@ ieee80211_rx_h_passive_scan(struct ieee80211_rx_data *rx)
|
||||
struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(rx->skb);
|
||||
struct sk_buff *skb = rx->skb;
|
||||
|
||||
if (likely(!(status->rx_flags & IEEE80211_RX_IN_SCAN)))
|
||||
if (likely(!(status->rx_flags & IEEE80211_RX_IN_SCAN) &&
|
||||
!local->sched_scanning))
|
||||
return RX_CONTINUE;
|
||||
|
||||
if (test_bit(SCAN_HW_SCANNING, &local->scanning) ||
|
||||
test_bit(SCAN_SW_SCANNING, &local->scanning))
|
||||
test_bit(SCAN_SW_SCANNING, &local->scanning) ||
|
||||
local->sched_scanning)
|
||||
return ieee80211_scan_rx(rx->sdata, skb);
|
||||
|
||||
/* scanning finished during invoking of handlers */
|
||||
@@ -488,15 +490,18 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
|
||||
* establisment frame, beacon or probe, drop the frame.
|
||||
*/
|
||||
|
||||
if (!rx->sta || sta_plink_state(rx->sta) != PLINK_ESTAB) {
|
||||
if (!rx->sta || sta_plink_state(rx->sta) != NL80211_PLINK_ESTAB) {
|
||||
struct ieee80211_mgmt *mgmt;
|
||||
|
||||
if (!ieee80211_is_mgmt(hdr->frame_control))
|
||||
return RX_DROP_MONITOR;
|
||||
|
||||
if (ieee80211_is_action(hdr->frame_control)) {
|
||||
u8 category;
|
||||
mgmt = (struct ieee80211_mgmt *)hdr;
|
||||
if (mgmt->u.action.category != WLAN_CATEGORY_MESH_PLINK)
|
||||
category = mgmt->u.action.category;
|
||||
if (category != WLAN_CATEGORY_MESH_ACTION &&
|
||||
category != WLAN_CATEGORY_SELF_PROTECTED)
|
||||
return RX_DROP_MONITOR;
|
||||
return RX_CONTINUE;
|
||||
}
|
||||
@@ -1778,7 +1783,7 @@ ieee80211_rx_h_amsdu(struct ieee80211_rx_data *rx)
|
||||
|
||||
ieee80211_amsdu_to_8023s(skb, &frame_list, dev->dev_addr,
|
||||
rx->sdata->vif.type,
|
||||
rx->local->hw.extra_tx_headroom);
|
||||
rx->local->hw.extra_tx_headroom, true);
|
||||
|
||||
while (!skb_queue_empty(&frame_list)) {
|
||||
rx->skb = __skb_dequeue(&frame_list);
|
||||
@@ -2205,7 +2210,7 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
|
||||
goto handled;
|
||||
}
|
||||
break;
|
||||
case WLAN_CATEGORY_MESH_PLINK:
|
||||
case WLAN_CATEGORY_MESH_ACTION:
|
||||
if (!ieee80211_vif_is_mesh(&sdata->vif))
|
||||
break;
|
||||
goto queue;
|
||||
|
Reference in New Issue
Block a user