diff options
author | Javier Cardona <javier@cozybit.com> | 2010-03-29 11:00:20 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-08-02 10:20:47 -0700 |
commit | 7d7810cdb93c6afcf77d8b6109f345009556e78c (patch) | |
tree | ca5c019deac5429068124e7ee1d5384792c04566 | |
parent | 54dc36b3d433c98551fdc9d27bbb54e47792f95c (diff) | |
download | lwn-7d7810cdb93c6afcf77d8b6109f345009556e78c.tar.gz lwn-7d7810cdb93c6afcf77d8b6109f345009556e78c.zip |
mac80211: Handle mesh action frames in ieee80211_rx_h_action
commit 1cb561f83793191cf86a2db3948d28f5f42df9ff upstream.
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>
Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | include/linux/ieee80211.h | 2 | ||||
-rw-r--r-- | net/mac80211/rx.c | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h index 52e15e079c61..e7660728a2ed 100644 --- a/include/linux/ieee80211.h +++ b/include/linux/ieee80211.h @@ -1098,6 +1098,8 @@ enum ieee80211_category { WLAN_CATEGORY_SA_QUERY = 8, WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9, WLAN_CATEGORY_WMM = 17, + WLAN_CATEGORY_MESH_PLINK = 30, /* Pending ANA approval */ + WLAN_CATEGORY_MESH_PATH_SEL = 32, /* Pending ANA approval */ WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126, WLAN_CATEGORY_VENDOR_SPECIFIC = 127, }; diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c index 3ee3cb89e187..38499c4e7106 100644 --- a/net/mac80211/rx.c +++ b/net/mac80211/rx.c @@ -1818,6 +1818,11 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx) return RX_CONTINUE; } break; + case WLAN_CATEGORY_MESH_PLINK: + case WLAN_CATEGORY_MESH_PATH_SEL: + if (ieee80211_vif_is_mesh(&sdata->vif)) + return ieee80211_mesh_rx_mgmt(sdata, rx->skb); + break; default: /* do not process rejected action frames */ if (mgmt->u.action.category & 0x80) |