From: Kalesh AP Date: Thu, 27 Feb 2020 08:18:51 +0000 (+0530) Subject: net/bnxt: fix MAC address setting when port is stopped X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=48f9faddc65d3a45cdd7e41fef49a91cfc156d04 net/bnxt: fix MAC address setting when port is stopped Driver destroys the VNIC when the port is brought down. Port HW filter setting such as default MAC address and unicast MAC filters will be applied when port is started. Fixed to return success silently for these callbacks when port is stopped. Fixes: 39b88344e364 ("net/bnxt: fix enable/disable VLAN filtering") Cc: stable@dpdk.org Reported-by: Stephen Hemminger Signed-off-by: Kalesh AP Reviewed-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index b8b30ed3ff..93d006217f 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -1108,6 +1108,10 @@ static int bnxt_mac_addr_add_op(struct rte_eth_dev *eth_dev, return -EINVAL; } + /* Filter settings will get applied when port is started */ + if (!eth_dev->data->dev_started) + return 0; + rc = bnxt_add_mac_filter(bp, vnic, mac_addr, index, pool); return rc; @@ -2099,6 +2103,10 @@ bnxt_set_default_mac_addr_op(struct rte_eth_dev *dev, if (rte_is_zero_ether_addr(addr)) return -EINVAL; + /* Filter settings will get applied when port is started */ + if (!dev->data->dev_started) + return 0; + /* Check if the requested MAC is already added */ if (memcmp(addr, bp->mac_addr, RTE_ETHER_ADDR_LEN) == 0) return 0;