aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/pensando/ionic/ionic.h
diff options
context:
space:
mode:
authorBrett Creeley <brett@pensando.io>2022-01-24 10:53:06 -0800
committerDavid S. Miller <davem@davemloft.net>2022-01-25 11:15:09 +0000
commitf16f5be31009e228ed8366cd6cd24341040063bb (patch)
tree1241b43000a21949f79e59a6d809d476bc6ea494 /drivers/net/ethernet/pensando/ionic/ionic.h
parentionic: Allow flexibility for error reporting on dev commands (diff)
downloadlinux-f16f5be31009e228ed8366cd6cd24341040063bb.tar.xz
linux-f16f5be31009e228ed8366cd6cd24341040063bb.zip
ionic: Query FW when getting VF info via ndo_get_vf_config
Currently when an administrator configures a VF via ndo_set_vf*, the driver will send the set command to FW and then update the cached value. The cached value is then used when reporting VF info via ndo_get_vf_config. A problem is that the VF info may have been updated between the last ndo_set_vf* and ndo_get_vf_info commands via some other method, i.e. a VF changes its MAC address (assuming it's allowed to do so) and since this is all managed by the FW, this new value won't be reflected in the PF's cache of values. To fix this, update the driver to always get the latest VF information by making use of the IONIC_CMD_VF_GETATTR dev command. The FW may not support getting all the attributes for IONIC_CMD_VF_GETATTR, so the driver will only update the cached VF config members if their associated IONIC_CMD_VF_GETATTR was successful. Otherwise the cached VF config members will remain the same as what was set in ndo_set_vf*. Fixes: fbb39807e9ae ("ionic: support sr-iov operations") Signed-off-by: Brett Creeley <brett@pensando.io> Signed-off-by: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/pensando/ionic/ionic.h')
-rw-r--r--drivers/net/ethernet/pensando/ionic/ionic.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ethernet/pensando/ionic/ionic.h b/drivers/net/ethernet/pensando/ionic/ionic.h
index 6783c0e6ba4f..04fdaf5c1a02 100644
--- a/drivers/net/ethernet/pensando/ionic/ionic.h
+++ b/drivers/net/ethernet/pensando/ionic/ionic.h
@@ -92,4 +92,6 @@ int ionic_port_identify(struct ionic *ionic);
int ionic_port_init(struct ionic *ionic);
int ionic_port_reset(struct ionic *ionic);
+const char *ionic_vf_attr_to_str(enum ionic_vf_attr attr);
+
#endif /* _IONIC_H_ */