#include <net/bonding.h>
 #include <net/bond_alb.h>
 
-
-
-static const u8 mac_bcast[ETH_ALEN + 2] __long_aligned = {
-       0xff, 0xff, 0xff, 0xff, 0xff, 0xff
-};
 static const u8 mac_v6_allmcast[ETH_ALEN + 2] __long_aligned = {
        0x33, 0x33, 0x00, 0x00, 0x00, 0x01
 };
 
                        if (assigned_slave) {
                                rx_hash_table[index].slave = assigned_slave;
-                               if (!ether_addr_equal_64bits(rx_hash_table[index].mac_dst,
-                                                            mac_bcast) &&
-                                   !is_zero_ether_addr(rx_hash_table[index].mac_dst)) {
+                               if (is_valid_ether_addr(rx_hash_table[index].mac_dst)) {
                                        bond_info->rx_hashtbl[index].ntt = 1;
                                        bond_info->rx_ntt = 1;
                                        /* A slave has been removed from the
                client_info = &(bond_info->rx_hashtbl[hash_index]);
 
                if ((client_info->slave == slave) &&
-                   !ether_addr_equal_64bits(client_info->mac_dst, mac_bcast) &&
-                   !is_zero_ether_addr(client_info->mac_dst)) {
+                   is_valid_ether_addr(client_info->mac_dst)) {
                        client_info->ntt = 1;
                        ntt = 1;
                }
                if ((client_info->ip_src == src_ip) &&
                    !ether_addr_equal_64bits(client_info->slave->dev->dev_addr,
                                             bond->dev->dev_addr) &&
-                   !ether_addr_equal_64bits(client_info->mac_dst, mac_bcast) &&
-                   !is_zero_ether_addr(client_info->mac_dst)) {
+                   is_valid_ether_addr(client_info->mac_dst)) {
                        client_info->ntt = 1;
                        bond_info->rx_ntt = 1;
                }
                if ((client_info->ip_src == arp->ip_src) &&
                    (client_info->ip_dst == arp->ip_dst)) {
                        /* the entry is already assigned to this client */
-                       if (!ether_addr_equal_64bits(arp->mac_dst, mac_bcast)) {
+                       if (!is_broadcast_ether_addr(arp->mac_dst)) {
                                /* update mac address from arp */
                                ether_addr_copy(client_info->mac_dst, arp->mac_dst);
                        }
                ether_addr_copy(client_info->mac_src, arp->mac_src);
                client_info->slave = assigned_slave;
 
-               if (!ether_addr_equal_64bits(client_info->mac_dst, mac_bcast) &&
-                   !is_zero_ether_addr(client_info->mac_dst)) {
+               if (is_valid_ether_addr(client_info->mac_dst)) {
                        client_info->ntt = 1;
                        bond->alb_info.rx_ntt = 1;
                } else {
        case ETH_P_IP: {
                const struct iphdr *iph = ip_hdr(skb);
 
-               if (ether_addr_equal_64bits(eth_data->h_dest, mac_bcast) ||
-                   (iph->daddr == ip_bcast) ||
-                   (iph->protocol == IPPROTO_IGMP)) {
+               if (is_broadcast_ether_addr(eth_data->h_dest) ||
+                   iph->daddr == ip_bcast ||
+                   iph->protocol == IPPROTO_IGMP) {
                        do_tx_balance = false;
                        break;
                }
                /* IPv6 doesn't really use broadcast mac address, but leave
                 * that here just in case.
                 */
-               if (ether_addr_equal_64bits(eth_data->h_dest, mac_bcast)) {
+               if (is_broadcast_ether_addr(eth_data->h_dest)) {
                        do_tx_balance = false;
                        break;
                }