zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr()
authorShaddy Baddah <shaddy_baddah@hotmail.com>
Fri, 28 Nov 2008 06:10:45 +0000 (17:10 +1100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 5 Dec 2008 14:18:35 +0000 (09:18 -0500)
commitcde6901b7b69557a6f90f3183f76eda581af015e
tree7a0eeb25bedefb1713067e0539ce376d9d7308dd
parent5cf12e8dc641ef028f0cf9c317a9567e6b794de1
zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr()

Under my 2.6.28-rc6 sparc64, when associating to an AP through my
zd1211rw device, I was seeing kernel log messages like (not exact output):

  Kernel unaligned access at TPC[10129b68] zd_mac_rx+0x144/0x32c [zd1211rw]

For the zd1211rw module, on RX, the 80211 packet will be located after
the PLCP header in the skb data buffer. The PLCP header being 5 bytes
long, the 80211 header will start unaligned from an aligned skb
buffer.

As per Documentation/unaligned-memory-access.txt, we must replace the
not unaligned() safe compare_ether_addr() with memcmp() to protect
architectures that require alignment.

Signed-off-by: Shaddy Baddah <shaddy_baddah@hotmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/zd1211rw/zd_mac.c