* source pruning.
                 */
                if ((skb->pkt_type & (PACKET_BROADCAST | PACKET_MULTICAST)) &&
-                   !(compare_ether_addr(adapter->netdev->dev_addr,
-                                       eth_hdr(skb)->h_source))) {
+                   ether_addr_equal(adapter->netdev->dev_addr,
+                                    eth_hdr(skb)->h_source)) {
                        dev_kfree_skb_irq(skb);
                        goto next_desc;
                }
 
        if (!is_valid_ether_addr(mac) || vf >= num_vfs)
                return -EINVAL;
 
-       if (!compare_ether_addr(adapter->mac_addr, mac)) {
+       if (ether_addr_equal(adapter->mac_addr, mac)) {
                netdev_err(netdev, "MAC address is already in use by the PF\n");
                return -EINVAL;
        }
 
        for (i = 0; i < num_vfs; i++) {
                vf_info = &sriov->vf_info[i];
-               if (!compare_ether_addr(vf_info->vp->mac, mac)) {
+               if (ether_addr_equal(vf_info->vp->mac, mac)) {
                        netdev_err(netdev,
                                   "MAC address is already in use by VF %d\n",
                                   i);
 
        /* Filter out packets that aren't for us. */
        if (!(dev->flags & IFF_PROMISC) &&
            !is_multicast_ether_addr(buf) &&
-           compare_ether_addr(dev->dev_addr, buf) != 0)
+           !ether_addr_equal(dev->dev_addr, buf))
                return true;
 
        return false;
 
        /* Never use the same address on both ends of the link, even
         * if the buggy firmware told us to.
         */
-       if (!compare_ether_addr(dev->net->dev_addr, default_modem_addr))
+       if (ether_addr_equal(dev->net->dev_addr, default_modem_addr))
                eth_hw_addr_random(dev->net);
 
        /* make MAC addr easily distinguishable from an IP header */
 
        struct vxlan_fdb *f;
 
        hlist_for_each_entry_rcu(f, head, hlist) {
-               if (compare_ether_addr(mac, f->eth_addr) == 0)
+               if (ether_addr_equal(mac, f->eth_addr))
                        return f;
        }
 
        skb->protocol = eth_type_trans(skb, vxlan->dev);
 
        /* Ignore packet loops (and multicast echo) */
-       if (compare_ether_addr(eth_hdr(skb)->h_source,
-                              vxlan->dev->dev_addr) == 0)
+       if (ether_addr_equal(eth_hdr(skb)->h_source, vxlan->dev->dev_addr))
                goto drop;
 
        /* Re-examine inner Ethernet packet */
        if (n) {
                bool diff;
 
-               diff = compare_ether_addr(eth_hdr(skb)->h_dest, n->ha) != 0;
+               diff = !ether_addr_equal(eth_hdr(skb)->h_dest, n->ha);
                if (diff) {
                        memcpy(eth_hdr(skb)->h_source, eth_hdr(skb)->h_dest,
                                dev->addr_len);
 
 
                if (bar->start_seq_num == entry_bar->start_seq_num &&
                    TID_CHECK(bar->control, entry_bar->control) &&
-                   compare_ether_addr(bar->ra, entry_bar->ta) == 0 &&
-                   compare_ether_addr(bar->ta, entry_bar->ra) == 0) {
+                   ether_addr_equal(bar->ra, entry_bar->ta) &&
+                   ether_addr_equal(bar->ta, entry_bar->ra)) {
                        struct ieee80211_tx_info *tx_info;
 
                        tx_info = IEEE80211_SKB_CB(entry_skb);
 
 
 #undef TID_CHECK
 
-               if (compare_ether_addr(ba->ra, entry->ta))
+               if (!ether_addr_equal(ba->ra, entry->ta))
                        continue;
 
-               if (compare_ether_addr(ba->ta, entry->ra))
+               if (!ether_addr_equal(ba->ta, entry->ra))
                        continue;
 
                /* Mark BAR since we received the according BA */
 
                return;
 
        /* and only beacons from the associated BSSID, please */
-       if (compare_ether_addr(hdr->addr3, rtlpriv->mac80211.bssid))
+       if (!ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid))
                return;
 
        rtlpriv->link_info.bcn_rx_inperiod++;
 
                return;
 
        /* and only beacons from the associated BSSID, please */
-       if (compare_ether_addr(hdr->addr3, rtlpriv->mac80211.bssid))
+       if (!ether_addr_equal(hdr->addr3, rtlpriv->mac80211.bssid))
                return;
 
        /* check if this really is a beacon */
 
        psaddr = ieee80211_get_SA(hdr);
        memcpy(pstatus->psaddr, psaddr, ETH_ALEN);
 
-       addr = (!compare_ether_addr(mac->bssid, (ufc & IEEE80211_FCTL_TODS) ?
-               hdr->addr1 : (ufc & IEEE80211_FCTL_FROMDS) ?
-               hdr->addr2 : hdr->addr3));
+       addr = ether_addr_equal(mac->bssid,
+                               (ufc & IEEE80211_FCTL_TODS) ? hdr->addr1 :
+                               (ufc & IEEE80211_FCTL_FROMDS) ? hdr->addr2 :
+                               hdr->addr3);
        match_bssid = ((IEEE80211_FTYPE_CTL != type) && (!pstatus->hwerror) &&
                       (!pstatus->crc) && (!pstatus->icv)) && addr;
 
-       addr = (!compare_ether_addr(praddr, rtlefuse->dev_addr));
+       addr = ether_addr_equal(praddr, rtlefuse->dev_addr);
        packet_toself = match_bssid && addr;
 
        if (ieee80211_is_beacon(fc))
 
        type = WLAN_FC_GET_TYPE(fc);
        praddr = hdr->addr1;
 
-       packet_matchbssid = ((IEEE80211_FTYPE_CTL != type) &&
-                           (!compare_ether_addr(mac->bssid,
-                           (le16_to_cpu(fc) & IEEE80211_FCTL_TODS) ?
-                           hdr->addr1 : (le16_to_cpu(fc) &
-                           IEEE80211_FCTL_FROMDS) ?
-                           hdr->addr2 : hdr->addr3)) && (!pstatus->hwerror) &&
-                           (!pstatus->crc) && (!pstatus->icv));
-
-       packet_toself = packet_matchbssid &&
-           (!compare_ether_addr(praddr, rtlefuse->dev_addr));
+       packet_matchbssid =
+               ((IEEE80211_FTYPE_CTL != type) &&
+                ether_addr_equal(mac->bssid,
+                                 (le16_to_cpu(fc) & IEEE80211_FCTL_TODS) ? hdr->addr1 :
+                                 (le16_to_cpu(fc) & IEEE80211_FCTL_FROMDS) ? hdr->addr2 :
+                                 hdr->addr3) &&
+                (!pstatus->hwerror) && (!pstatus->crc) && (!pstatus->icv));
+
+       packet_toself = (packet_matchbssid &&
+                        ether_addr_equal(praddr, rtlefuse->dev_addr));
 
        if (ieee80211_is_beacon(fc))
                packet_beacon = true;