aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/Kconfig2
-rw-r--r--net/mac80211/mesh_hwmp.c24
-rw-r--r--net/mac80211/mesh_plink.c5
3 files changed, 16 insertions, 15 deletions
diff --git a/net/mac80211/Kconfig b/net/mac80211/Kconfig
index 5ca576e77615..3c3f62faae1e 100644
--- a/net/mac80211/Kconfig
+++ b/net/mac80211/Kconfig
@@ -83,7 +83,7 @@ endmenu
83 83
84config MAC80211_MESH 84config MAC80211_MESH
85 bool "Enable mac80211 mesh networking (pre-802.11s) support" 85 bool "Enable mac80211 mesh networking (pre-802.11s) support"
86 depends on MAC80211 && EXPERIMENTAL && BROKEN 86 depends on MAC80211 && EXPERIMENTAL
87 ---help--- 87 ---help---
88 This options enables support of Draft 802.11s mesh networking. 88 This options enables support of Draft 802.11s mesh networking.
89 The implementation is based on Draft 1.08 of the Mesh Networking 89 The implementation is based on Draft 1.08 of the Mesh Networking
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index d8530fe7a0b3..3ee46e43ead9 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -30,16 +30,16 @@
30#define PREQ_IE_FLAGS(x) (*(x)) 30#define PREQ_IE_FLAGS(x) (*(x))
31#define PREQ_IE_HOPCOUNT(x) (*(x + 1)) 31#define PREQ_IE_HOPCOUNT(x) (*(x + 1))
32#define PREQ_IE_TTL(x) (*(x + 2)) 32#define PREQ_IE_TTL(x) (*(x + 2))
33#define PREQ_IE_PREQ_ID(x) le32_to_cpu(*((u32 *) (x + 3))) 33#define PREQ_IE_PREQ_ID(x) le32_to_cpu(*((__le32 *) (x + 3)))
34#define PREQ_IE_ORIG_ADDR(x) (x + 7) 34#define PREQ_IE_ORIG_ADDR(x) (x + 7)
35#define PREQ_IE_ORIG_DSN(x) le32_to_cpu(*((u32 *) (x + 13))) 35#define PREQ_IE_ORIG_DSN(x) le32_to_cpu(*((__le32 *) (x + 13)))
36#define PREQ_IE_LIFETIME(x) le32_to_cpu(*((u32 *) \ 36#define PREQ_IE_LIFETIME(x) le32_to_cpu(*((__le32 *) \
37 (AE_F_SET(x) ? x + 23 : x + 17))) 37 (AE_F_SET(x) ? x + 23 : x + 17)))
38#define PREQ_IE_METRIC(x) le32_to_cpu(*((u32 *) \ 38#define PREQ_IE_METRIC(x) le32_to_cpu(*((__le32 *) \
39 (AE_F_SET(x) ? x + 27 : x + 21))) 39 (AE_F_SET(x) ? x + 27 : x + 21)))
40#define PREQ_IE_DST_F(x) (*(AE_F_SET(x) ? x + 32 : x + 26)) 40#define PREQ_IE_DST_F(x) (*(AE_F_SET(x) ? x + 32 : x + 26))
41#define PREQ_IE_DST_ADDR(x) (AE_F_SET(x) ? x + 33 : x + 27) 41#define PREQ_IE_DST_ADDR(x) (AE_F_SET(x) ? x + 33 : x + 27)
42#define PREQ_IE_DST_DSN(x) le32_to_cpu(*((u32 *) \ 42#define PREQ_IE_DST_DSN(x) le32_to_cpu(*((__le32 *) \
43 (AE_F_SET(x) ? x + 39 : x + 33))) 43 (AE_F_SET(x) ? x + 39 : x + 33)))
44 44
45 45
@@ -47,17 +47,17 @@
47#define PREP_IE_HOPCOUNT(x) PREQ_IE_HOPCOUNT(x) 47#define PREP_IE_HOPCOUNT(x) PREQ_IE_HOPCOUNT(x)
48#define PREP_IE_TTL(x) PREQ_IE_TTL(x) 48#define PREP_IE_TTL(x) PREQ_IE_TTL(x)
49#define PREP_IE_ORIG_ADDR(x) (x + 3) 49#define PREP_IE_ORIG_ADDR(x) (x + 3)
50#define PREP_IE_ORIG_DSN(x) le32_to_cpu(*((u32 *) (x + 9))) 50#define PREP_IE_ORIG_DSN(x) le32_to_cpu(*((__le32 *) (x + 9)))
51#define PREP_IE_LIFETIME(x) le32_to_cpu(*((u32 *) \ 51#define PREP_IE_LIFETIME(x) le32_to_cpu(*((__le32 *) \
52 (AE_F_SET(x) ? x + 19 : x + 13))) 52 (AE_F_SET(x) ? x + 19 : x + 13)))
53#define PREP_IE_METRIC(x) le32_to_cpu(*((u32 *) \ 53#define PREP_IE_METRIC(x) le32_to_cpu(*((__le32 *) \
54 (AE_F_SET(x) ? x + 23 : x + 17))) 54 (AE_F_SET(x) ? x + 23 : x + 17)))
55#define PREP_IE_DST_ADDR(x) (AE_F_SET(x) ? x + 27 : x + 21) 55#define PREP_IE_DST_ADDR(x) (AE_F_SET(x) ? x + 27 : x + 21)
56#define PREP_IE_DST_DSN(x) le32_to_cpu(*((u32 *) \ 56#define PREP_IE_DST_DSN(x) le32_to_cpu(*((__le32 *) \
57 (AE_F_SET(x) ? x + 33 : x + 27))) 57 (AE_F_SET(x) ? x + 33 : x + 27)))
58 58
59#define PERR_IE_DST_ADDR(x) (x + 2) 59#define PERR_IE_DST_ADDR(x) (x + 2)
60#define PERR_IE_DST_DSN(x) le32_to_cpu(*((u32 *) (x + 8))) 60#define PERR_IE_DST_DSN(x) le32_to_cpu(*((__le32 *) (x + 8)))
61 61
62#define TU_TO_EXP_TIME(x) (jiffies + msecs_to_jiffies(x * 1024 / 1000)) 62#define TU_TO_EXP_TIME(x) (jiffies + msecs_to_jiffies(x * 1024 / 1000))
63#define MSEC_TO_TU(x) (x*1000/1024) 63#define MSEC_TO_TU(x) (x*1000/1024)
@@ -566,8 +566,8 @@ static void hwmp_perr_frame_process(struct net_device *dev,
566 mpath->flags &= ~MESH_PATH_ACTIVE; 566 mpath->flags &= ~MESH_PATH_ACTIVE;
567 mpath->dsn = dst_dsn; 567 mpath->dsn = dst_dsn;
568 spin_unlock_bh(&mpath->state_lock); 568 spin_unlock_bh(&mpath->state_lock);
569 mesh_path_error_tx(dst_addr, dst_dsn, dev->broadcast, 569 mesh_path_error_tx(dst_addr, __cpu_to_le32(dst_dsn),
570 dev); 570 dev->broadcast, dev);
571 } else 571 } else
572 spin_unlock_bh(&mpath->state_lock); 572 spin_unlock_bh(&mpath->state_lock);
573 } 573 }
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 7f02ae8abe90..307c90e61df6 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -85,7 +85,8 @@ void mesh_plink_dec_estab_count(struct ieee80211_sub_if_data *sdata)
85static inline void mesh_plink_fsm_restart(struct sta_info *sta) 85static inline void mesh_plink_fsm_restart(struct sta_info *sta)
86{ 86{
87 sta->plink_state = LISTEN; 87 sta->plink_state = LISTEN;
88 sta->llid = sta->plid = sta->reason = sta->plink_retries = 0; 88 sta->llid = sta->plid = sta->reason = 0;
89 sta->plink_retries = 0;
89} 90}
90 91
91static struct sta_info *mesh_plink_alloc(struct ieee80211_sub_if_data *sdata, 92static struct sta_info *mesh_plink_alloc(struct ieee80211_sub_if_data *sdata,
@@ -373,7 +374,7 @@ void mesh_plink_block(struct sta_info *sta)
373int mesh_plink_close(struct sta_info *sta) 374int mesh_plink_close(struct sta_info *sta)
374{ 375{
375 struct ieee80211_sub_if_data *sdata = sta->sdata; 376 struct ieee80211_sub_if_data *sdata = sta->sdata;
376 int llid, plid, reason; 377 __le16 llid, plid, reason;
377#ifdef CONFIG_MAC80211_VERBOSE_MPL_DEBUG 378#ifdef CONFIG_MAC80211_VERBOSE_MPL_DEBUG
378 DECLARE_MAC_BUF(mac); 379 DECLARE_MAC_BUF(mac);
379#endif 380#endif