enic_set_mac_address() (mac_addr_add callback) currently allows only non-zero, unicast address to be added. It is overly restrictive. rte_eth_dev_mac_addr_add() itself allows multicast addresses. And, some applications do use rte_eth_dev_mac_addr_add() to accept multicast addresses. So, remove the unicast check in enic_set_mac_address().
Signed-off-by: Hyong Youb Kim <hyon...@cisco.com> Reviewed-by: John Daley <johnd...@cisco.com> --- drivers/net/enic/enic_main.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c index e59b0a5077..b755b15d92 100644 --- a/drivers/net/enic/enic_main.c +++ b/drivers/net/enic/enic_main.c @@ -32,21 +32,6 @@ #include "vnic_intr.h" #include "vnic_nic.h" -static int is_zero_addr(uint8_t *addr) -{ - return !(addr[0] | addr[1] | addr[2] | addr[3] | addr[4] | addr[5]); -} - -static int is_mcast_addr(uint8_t *addr) -{ - return addr[0] & 1; -} - -static int is_eth_addr_valid(uint8_t *addr) -{ - return !is_mcast_addr(addr) && !is_zero_addr(addr); -} - void enic_rxmbuf_queue_release(__rte_unused struct enic *enic, struct vnic_rq *rq) { @@ -177,11 +162,6 @@ int enic_set_mac_address(struct enic *enic, uint8_t *mac_addr) { int err; - if (!is_eth_addr_valid(mac_addr)) { - dev_err(enic, "invalid mac address\n"); - return -EINVAL; - } - err = enic_dev_add_addr(enic, mac_addr); if (err) dev_err(enic, "add mac addr failed\n"); -- 2.35.2