mac80211: fix mesh endianness sparse warnings and unmark it as broken
authorLuis Carlos Cobo <luisca@cozybit.com>
Fri, 29 Feb 2008 20:13:38 +0000 (12:13 -0800)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 6 Mar 2008 21:40:48 +0000 (16:40 -0500)
This patch fixes all the mesh related endianness warnings reported by sparse. As
they were the reason why Johannes marked mesh as BROKEN, that flag has been
removed.

Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/Kconfig
net/mac80211/mesh_hwmp.c
net/mac80211/mesh_plink.c

index 5ca576e77615fc83e02998a1816fe8fdc706797c..3c3f62faae1e7158a16f5cab3d756bdb50880240 100644 (file)
@@ -83,7 +83,7 @@ endmenu
 
 config MAC80211_MESH
        bool "Enable mac80211 mesh networking (pre-802.11s) support"
-       depends on MAC80211 && EXPERIMENTAL && BROKEN
+       depends on MAC80211 && EXPERIMENTAL
        ---help---
         This options enables support of Draft 802.11s mesh networking.
         The implementation is based on Draft 1.08 of the Mesh Networking
index d8530fe7a0b3de13c36febd0c6e3b3441e9bfbcc..3ee46e43ead94f6a9571bae9db04d9c2786359b3 100644 (file)
 #define PREQ_IE_FLAGS(x) (*(x))
 #define PREQ_IE_HOPCOUNT(x) (*(x + 1))
 #define PREQ_IE_TTL(x) (*(x + 2))
-#define PREQ_IE_PREQ_ID(x) le32_to_cpu(*((u32 *) (x + 3)))
+#define PREQ_IE_PREQ_ID(x) le32_to_cpu(*((__le32 *) (x + 3)))
 #define PREQ_IE_ORIG_ADDR(x) (x + 7)
-#define PREQ_IE_ORIG_DSN(x) le32_to_cpu(*((u32 *) (x + 13)))
-#define PREQ_IE_LIFETIME(x) le32_to_cpu(*((u32 *) \
+#define PREQ_IE_ORIG_DSN(x) le32_to_cpu(*((__le32 *) (x + 13)))
+#define PREQ_IE_LIFETIME(x) le32_to_cpu(*((__le32 *) \
                        (AE_F_SET(x) ? x + 23 : x + 17)))
-#define PREQ_IE_METRIC(x) le32_to_cpu(*((u32 *) \
+#define PREQ_IE_METRIC(x) le32_to_cpu(*((__le32 *) \
                        (AE_F_SET(x) ? x + 27 : x + 21)))
 #define PREQ_IE_DST_F(x) (*(AE_F_SET(x) ? x + 32 : x + 26))
 #define PREQ_IE_DST_ADDR(x) (AE_F_SET(x) ? x + 33 : x + 27)
-#define PREQ_IE_DST_DSN(x) le32_to_cpu(*((u32 *) \
+#define PREQ_IE_DST_DSN(x) le32_to_cpu(*((__le32 *) \
                        (AE_F_SET(x) ? x + 39 : x + 33)))
 
 
 #define PREP_IE_HOPCOUNT(x) PREQ_IE_HOPCOUNT(x)
 #define PREP_IE_TTL(x) PREQ_IE_TTL(x)
 #define PREP_IE_ORIG_ADDR(x) (x + 3)
-#define PREP_IE_ORIG_DSN(x) le32_to_cpu(*((u32 *) (x + 9)))
-#define PREP_IE_LIFETIME(x) le32_to_cpu(*((u32 *) \
+#define PREP_IE_ORIG_DSN(x) le32_to_cpu(*((__le32 *) (x + 9)))
+#define PREP_IE_LIFETIME(x) le32_to_cpu(*((__le32 *) \
                        (AE_F_SET(x) ? x + 19 : x + 13)))
-#define PREP_IE_METRIC(x) le32_to_cpu(*((u32 *) \
+#define PREP_IE_METRIC(x) le32_to_cpu(*((__le32 *) \
                        (AE_F_SET(x) ? x + 23 : x + 17)))
 #define PREP_IE_DST_ADDR(x) (AE_F_SET(x) ? x + 27 : x + 21)
-#define PREP_IE_DST_DSN(x) le32_to_cpu(*((u32 *) \
+#define PREP_IE_DST_DSN(x) le32_to_cpu(*((__le32 *) \
                        (AE_F_SET(x) ? x + 33 : x + 27)))
 
 #define PERR_IE_DST_ADDR(x) (x + 2)
-#define PERR_IE_DST_DSN(x) le32_to_cpu(*((u32 *) (x + 8)))
+#define PERR_IE_DST_DSN(x) le32_to_cpu(*((__le32 *) (x + 8)))
 
 #define TU_TO_EXP_TIME(x) (jiffies + msecs_to_jiffies(x * 1024 / 1000))
 #define MSEC_TO_TU(x) (x*1000/1024)
@@ -566,8 +566,8 @@ static void hwmp_perr_frame_process(struct net_device *dev,
                        mpath->flags &= ~MESH_PATH_ACTIVE;
                        mpath->dsn = dst_dsn;
                        spin_unlock_bh(&mpath->state_lock);
-                       mesh_path_error_tx(dst_addr, dst_dsn, dev->broadcast,
-                                       dev);
+                       mesh_path_error_tx(dst_addr, __cpu_to_le32(dst_dsn),
+                                          dev->broadcast, dev);
                } else
                        spin_unlock_bh(&mpath->state_lock);
        }
index 7f02ae8abe9091b27c7b395337b5afd94bb4f9c1..307c90e61df6875442969787a587e6466e76da1e 100644 (file)
@@ -85,7 +85,8 @@ void mesh_plink_dec_estab_count(struct ieee80211_sub_if_data *sdata)
 static inline void mesh_plink_fsm_restart(struct sta_info *sta)
 {
        sta->plink_state = LISTEN;
-       sta->llid = sta->plid = sta->reason = sta->plink_retries = 0;
+       sta->llid = sta->plid = sta->reason = 0;
+       sta->plink_retries = 0;
 }
 
 static struct sta_info *mesh_plink_alloc(struct ieee80211_sub_if_data *sdata,
@@ -373,7 +374,7 @@ void mesh_plink_block(struct sta_info *sta)
 int mesh_plink_close(struct sta_info *sta)
 {
        struct ieee80211_sub_if_data *sdata = sta->sdata;
-       int llid, plid, reason;
+       __le16 llid, plid, reason;
 #ifdef CONFIG_MAC80211_VERBOSE_MPL_DEBUG
        DECLARE_MAC_BUF(mac);
 #endif