mac80211: Handle mesh action frames in ieee80211_rx_h_action

This fixes the problem introduced in commit
8404080568613d93ad7cf0a16dfb68 which broke mesh peer link establishment.

changes:
v2 Added missing break (Johannes)
v3 Broke original patch into two (Johannes)

Signed-off-by: Javier Cardona <javier@cozybit.com>
Cc: stable@kernel.org
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

authored by Javier Cardona and committed by John W. Linville 1cb561f8 de0f60ea

+5 -3
-3
net/mac80211/mesh.c
··· 749 749 750 750 switch (fc & IEEE80211_FCTL_STYPE) { 751 751 case IEEE80211_STYPE_ACTION: 752 - if (skb->len < IEEE80211_MIN_ACTION_SIZE) 753 - return RX_DROP_MONITOR; 754 - /* fall through */ 755 752 case IEEE80211_STYPE_PROBE_RESP: 756 753 case IEEE80211_STYPE_BEACON: 757 754 skb_queue_tail(&ifmsh->skb_queue, skb);
+5
net/mac80211/rx.c
··· 1973 1973 goto handled; 1974 1974 } 1975 1975 break; 1976 + case MESH_PLINK_CATEGORY: 1977 + case MESH_PATH_SEL_CATEGORY: 1978 + if (ieee80211_vif_is_mesh(&sdata->vif)) 1979 + return ieee80211_mesh_rx_mgmt(sdata, rx->skb); 1980 + break; 1976 1981 } 1977 1982 1978 1983 /*