On Fri, Mar 8, 2019 at 3:41 PM Pablo Cascón <pablo.cas...@netronome.com> wrote:
> 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") > > Signed-off-by: Pablo Cascón <pablo.cas...@netronome.com> > --- > 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 54c6da9..278e154 100644 > --- a/drivers/net/nfp/nfp_net.c > +++ b/drivers/net/nfp/nfp_net.c > @@ -566,7 +566,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.7.4 > > Acked-by: Alejandro Lucero <alejandro.luc...@netronome.com>