From 027412fe949c763fd4d536b13dcb4432f2df5534 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Pablo=20Casc=C3=B3n?= Date: Fri, 8 Mar 2019 15:40:47 +0000 Subject: [PATCH] net/nfp: fix setting MAC address MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Some firmwares, mostly for VFs, do not advertise the feature / capability of changing the MAC address while the interface is up. With such firmware a request to change the MAC address that at the same time also tries to enable the not available feature will be denied by the firmware resulting in an error message like: nfp_net_reconfig(): Error nfp_net reconfig for ctrl: 80000000 update: 800 Fix set_mac_addr by not trying to enable a feature if it is not advertised by the firmware. Fixes: 2fe669f4bcd2 ("net/nfp: support MAC address change") Cc: stable@dpdk.org Signed-off-by: Pablo Cascón Acked-by: Alejandro Lucero --- drivers/net/nfp/nfp_net.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index a791e95e2c..1b7b6c2fd4 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -575,7 +575,10 @@ nfp_set_mac_addr(struct rte_eth_dev *dev, struct ether_addr *mac_addr) /* Signal the NIC about the change */ update = NFP_NET_CFG_UPDATE_MACADDR; - ctrl = hw->ctrl | NFP_NET_CFG_CTRL_LIVE_ADDR; + ctrl = hw->ctrl; + if ((hw->ctrl & NFP_NET_CFG_CTRL_ENABLE) && + (hw->cap & NFP_NET_CFG_CTRL_LIVE_ADDR)) + ctrl |= NFP_NET_CFG_CTRL_LIVE_ADDR; if (nfp_net_reconfig(hw, ctrl, update) < 0) { PMD_INIT_LOG(INFO, "MAC address update failed"); return -EIO; -- 2.20.1