• Shaddy Baddah's avatar
    zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr() · cde6901b
    Shaddy Baddah authored
    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: default avatarShaddy Baddah <shaddy_baddah@hotmail.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    cde6901b
zd_mac.c 27.5 KB