summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShaddy Baddah <shaddy_baddah@hotmail.com>2008-11-28 17:08:10 +1100
committerJohn W. Linville <linville@tuxdriver.com>2008-12-05 09:18:35 -0500
commit5cf12e8dc641ef028f0cf9c317a9567e6b794de1 (patch)
tree79ab01689f1b81fd8a5e9a2c80b81387d19257b8
parentb8ddafd759e356c839774a8b87011b768deb53b3 (diff)
downloadlinux-stable-5cf12e8dc641ef028f0cf9c317a9567e6b794de1.tar.gz
linux-stable-5cf12e8dc641ef028f0cf9c317a9567e6b794de1.tar.bz2
linux-stable-5cf12e8dc641ef028f0cf9c317a9567e6b794de1.zip
mac80211: use unaligned safe memcmp() in-place of compare_ether_addr()
After fixing zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr(), I started to see kernel log messages detailing unaligned access: Kernel unaligned access at TPC[100f7f44] sta_info_get+0x24/0x68 [mac80211] As with the aforementioned patch, the unaligned access was eminating from a compare_ether_addr() call. Concerned that whilst it was safe to assume that unalignment was the norm for the zd1211rw, and take preventative measures, it may not be the case or acceptable to use the easy fix of changing the call to memcmp(). My research however indicated that it was OK to do this, as there are a few instances where memcmp() is the preferred mechanism for doing mac address comparisons throughout the module. Signed-off-by: Shaddy Baddah <shaddy_baddah@hotmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--net/mac80211/sta_info.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index 7fef8ea1f5ec..d254446b85b5 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -99,7 +99,7 @@ struct sta_info *sta_info_get(struct ieee80211_local *local, const u8 *addr)
sta = rcu_dereference(local->sta_hash[STA_HASH(addr)]);
while (sta) {
- if (compare_ether_addr(sta->sta.addr, addr) == 0)
+ if (memcmp(sta->sta.addr, addr, ETH_ALEN) == 0)
break;
sta = rcu_dereference(sta->hnext);
}