Skip to content

Commit

Permalink
mac80211: fix the sparse warnings on endian handling in RANN propagation
Browse files Browse the repository at this point in the history
The HWMP sequence number of received RANN element is compared to decide whether to be
propagated. The sequence number is required to covert from 32bit little endian data into
CPUs endianness for comparison. The same applies to the RANN metric.

Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com>
Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Chun-Yeow Yeoh authored and John W. Linville committed Apr 9, 2012
1 parent 70b12f2 commit 292c41a
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 3 additions & 3 deletions include/linux/ieee80211.h
Original file line number Diff line number Diff line change
Expand Up @@ -640,9 +640,9 @@ struct ieee80211_rann_ie {
u8 rann_hopcount;
u8 rann_ttl;
u8 rann_addr[6];
u32 rann_seq;
u32 rann_interval;
u32 rann_metric;
__le32 rann_seq;
__le32 rann_interval;
__le32 rann_metric;
} __attribute__ ((packed));

enum ieee80211_rann_flags {
Expand Down
4 changes: 2 additions & 2 deletions net/mac80211/mesh_hwmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -748,10 +748,10 @@ static void hwmp_rann_frame_process(struct ieee80211_sub_if_data *sdata,
flags = rann->rann_flags;
root_is_gate = !!(flags & RANN_FLAG_IS_GATE);
orig_addr = rann->rann_addr;
orig_sn = rann->rann_seq;
orig_sn = le32_to_cpu(rann->rann_seq);
hopcount = rann->rann_hopcount;
hopcount++;
metric = rann->rann_metric;
metric = le32_to_cpu(rann->rann_metric);

/* Ignore our own RANNs */
if (compare_ether_addr(orig_addr, sdata->vif.addr) == 0)
Expand Down

0 comments on commit 292c41a

Please sign in to comment.