diff options
author | Jakub Kicinski <jakub.kicinski@netronome.com> | 2017-04-23 06:17:56 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-04-24 21:35:44 +0300 |
commit | 90fdc561b08ce292f1d39a62f70012f150583b98 (patch) | |
tree | e91b5255668df358acb2eda390f902ecd99fce60 /drivers/net/ethernet/netronome/nfp/nfp_net.h | |
parent | ee200a7377fb6ce5ea6d631af0905883f0dca6d2 (diff) | |
download | linux-90fdc561b08ce292f1d39a62f70012f150583b98.tar.xz |
nfp: remove the refresh of all ports optimization
The code refreshing the eth port state was trying to update state
of all ports of the card. Unfortunately to safely walk the port
list we would have to hold the port lock, which we can't due to
lock ordering constraints against rtnl.
Make the per-port sync refresh and async refresh of all ports
completely separate routines.
Fixes: 172f638c93dd ("nfp: add port state refresh")
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/netronome/nfp/nfp_net.h')
-rw-r--r-- | drivers/net/ethernet/netronome/nfp/nfp_net.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net.h b/drivers/net/ethernet/netronome/nfp/nfp_net.h index 8302a2d688da..8f20fdef0754 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net.h +++ b/drivers/net/ethernet/netronome/nfp/nfp_net.h @@ -819,7 +819,8 @@ struct nfp_net_dp *nfp_net_clone_dp(struct nfp_net *nn); int nfp_net_ring_reconfig(struct nfp_net *nn, struct nfp_net_dp *new); bool nfp_net_link_changed_read_clear(struct nfp_net *nn); -void nfp_net_refresh_port_config(struct nfp_net *nn); +int nfp_net_refresh_eth_port(struct nfp_net *nn); +void nfp_net_refresh_port_table(struct nfp_net *nn); #ifdef CONFIG_NFP_DEBUG void nfp_net_debugfs_create(void); |