Commit 46b25031 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller

nfp: mark port state as stale if update failed

If reading new state of the port failed, mark the port back as CHANGED.
This way next user state request will trigger refresh, which will
hopefully succeed.
Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: default avatarSimon Horman <simon.horman@netronome.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 1f60a581
...@@ -528,6 +528,7 @@ nfp_net_eth_port_update(struct nfp_cpp *cpp, struct nfp_port *port, ...@@ -528,6 +528,7 @@ nfp_net_eth_port_update(struct nfp_cpp *cpp, struct nfp_port *port,
eth_port = nfp_net_find_port(eth_table, port->eth_id); eth_port = nfp_net_find_port(eth_table, port->eth_id);
if (!eth_port) { if (!eth_port) {
set_bit(NFP_PORT_CHANGED, &port->flags);
nfp_warn(cpp, "Warning: port #%d not present after reconfig\n", nfp_warn(cpp, "Warning: port #%d not present after reconfig\n",
port->eth_id); port->eth_id);
return -EIO; return -EIO;
...@@ -563,6 +564,9 @@ static void nfp_net_refresh_vnics(struct work_struct *work) ...@@ -563,6 +564,9 @@ static void nfp_net_refresh_vnics(struct work_struct *work)
eth_table = nfp_eth_read_ports(pf->cpp); eth_table = nfp_eth_read_ports(pf->cpp);
if (!eth_table) { if (!eth_table) {
list_for_each_entry(port, &pf->ports, port_list)
if (__nfp_port_get_eth_port(port))
set_bit(NFP_PORT_CHANGED, &port->flags);
rtnl_unlock(); rtnl_unlock();
nfp_err(pf->cpp, "Error refreshing port config!\n"); nfp_err(pf->cpp, "Error refreshing port config!\n");
goto out; goto out;
...@@ -611,6 +615,7 @@ int nfp_net_refresh_eth_port(struct nfp_port *port) ...@@ -611,6 +615,7 @@ int nfp_net_refresh_eth_port(struct nfp_port *port)
eth_table = nfp_eth_read_ports(cpp); eth_table = nfp_eth_read_ports(cpp);
if (!eth_table) { if (!eth_table) {
set_bit(NFP_PORT_CHANGED, &port->flags);
nfp_err(cpp, "Error refreshing port state table!\n"); nfp_err(cpp, "Error refreshing port state table!\n");
return -EIO; return -EIO;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment