diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index b54bc40f00b0dbb8c4557b90c2d1c0e0bbd654b1..690535a0322fd762e322ab6e138e593ca443cd38 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -6953,7 +6953,7 @@ static int ixgbe_ndo_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], return -EINVAL; } - if (is_unicast_ether_addr(addr) || is_link_local(addr)) { + if (is_unicast_ether_addr(addr) || is_link_local_ether_addr(addr)) { u32 rar_uc_entries = IXGBE_MAX_PF_MACVLANS; if (netdev_uc_count(dev) < rar_uc_entries) diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c index c281ee9c9e2a485a088f868aabb239faa260e77e..f3d3947ae962f43cc84ba7e6cb88deb3995efc53 100644 --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c @@ -2979,7 +2979,7 @@ static int ixgbevf_xmit_frame(struct sk_buff *skb, struct net_device *netdev) unsigned short f; #endif u8 *dst_mac = skb_header_pointer(skb, 0, 0, NULL); - if (!dst_mac || is_link_local(dst_mac)) { + if (!dst_mac || is_link_local_ether_addr(dst_mac)) { dev_kfree_skb(skb); return NETDEV_TX_OK; } diff --git a/drivers/net/ethernet/intel/ixgbevf/vf.c b/drivers/net/ethernet/intel/ixgbevf/vf.c index c0fd1ef494000a15de639b2db0b4fab5855878e5..0c94557b53df9b656dafd2e1a96f56c3803c8288 100644 --- a/drivers/net/ethernet/intel/ixgbevf/vf.c +++ b/drivers/net/ethernet/intel/ixgbevf/vf.c @@ -331,7 +331,7 @@ static s32 ixgbevf_update_mc_addr_list_vf(struct ixgbe_hw *hw, netdev_for_each_mc_addr(ha, netdev) { if (i == cnt) break; - if (is_link_local(ha->addr)) + if (is_link_local_ether_addr(ha->addr)) continue; vector_list[i++] = ixgbevf_mta_vector(hw, ha->addr); diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h index 45ded4be7b43a8323db62f725b307736195a8978..7cf2516ec74ce578687611801e950ea6186c85eb 100644 --- a/include/linux/etherdevice.h +++ b/include/linux/etherdevice.h @@ -55,15 +55,15 @@ extern struct net_device *alloc_etherdev_mqs(int sizeof_priv, unsigned int txqs, static const u8 br_reserved_address[ETH_ALEN] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 }; /** - * is_link_local - Determine if given Eth addr is a link local mcast address. + * is_link_local_ether_addr - Determine if given Ethernet address is link-local * @addr: Pointer to a six-byte array containing the Ethernet address * * Return true if address is link local reserved addr (01:80:c2:00:00:0X) per * IEEE 802.1Q 8.6.3 Frame filtering. */ -static inline int is_link_local(const unsigned char *dest) +static inline bool is_link_local_ether_addr(const u8 *addr) { - __be16 *a = (__be16 *)dest; + __be16 *a = (__be16 *)addr; static const __be16 *b = (const __be16 *)br_reserved_address; static const __be16 m = cpu_to_be16(0xfff0); diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c index d047978bf0252684c1f62f492b5190ec769bbaf6..4b34207419b1cfbe39ca54321cf9087101bab155 100644 --- a/net/bridge/br_input.c +++ b/net/bridge/br_input.c @@ -147,7 +147,7 @@ rx_handler_result_t br_handle_frame(struct sk_buff **pskb) p = br_port_get_rcu(skb->dev); - if (unlikely(is_link_local(dest))) { + if (unlikely(is_link_local_ether_addr(dest))) { /* * See IEEE 802.1D Table 7-10 Reserved addresses * diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c index 82385fd2f187222a6342b1df973f979af3b98c46..cffb76e2161c7cd32b5c888bb5067eec36cc09aa 100644 --- a/net/bridge/br_sysfs_br.c +++ b/net/bridge/br_sysfs_br.c @@ -309,7 +309,7 @@ static ssize_t store_group_addr(struct device *d, &new_addr[3], &new_addr[4], &new_addr[5]) != 6) return -EINVAL; - if (!is_link_local(new_addr)) + if (!is_link_local_ether_addr(new_addr)) return -EINVAL; if (new_addr[5] == 1 || /* 802.3x Pause address */