switch (ieee->iw_mode) {
        case IW_MODE_ADHOC:
                if ((fc & (IEEE80211_FCTL_TODS|IEEE80211_FCTL_FROMDS)) != 0 ||
-                   memcmp(hdr->addr3, ieee->bssid, ETH_ALEN) != 0)
+                   compare_ether_addr(hdr->addr3, ieee->bssid) != 0)
                        return 0;
                break;
        case IW_MODE_AUTO:
        case IW_MODE_INFRA:
                if ((fc & (IEEE80211_FCTL_TODS|IEEE80211_FCTL_FROMDS)) !=
                    IEEE80211_FCTL_FROMDS ||
-                   memcmp(hdr->addr2, ieee->bssid, ETH_ALEN) != 0)
+                   compare_ether_addr(hdr->addr2, ieee->bssid) != 0)
                        return 0;
                break;
        default:
                return 0;
        }
 
-       return memcmp(hdr->addr1, netdev->dev_addr, ETH_ALEN) == 0 ||
+       return compare_ether_addr(hdr->addr1, netdev->dev_addr) == 0 ||
               (is_multicast_ether_addr(hdr->addr1) &&
-               memcmp(hdr->addr3, netdev->dev_addr, ETH_ALEN) != 0) ||
+               compare_ether_addr(hdr->addr3, netdev->dev_addr) != 0) ||
               (netdev->flags & IFF_PROMISC);
 }
 
        hdr = (struct ieee80211_hdr_3addr *)buffer;
        if (length < offsetof(struct ieee80211_hdr_3addr, addr3))
                return;
-       if (memcmp(hdr->addr2, zd_mac_to_ieee80211(mac)->bssid, ETH_ALEN) != 0)
+       if (compare_ether_addr(hdr->addr2, zd_mac_to_ieee80211(mac)->bssid) != 0)
                return;
 
        spin_lock_irqsave(&mac->lock, flags);