mirror of https://gitee.com/openkylin/linux.git
nfp: refactor nfp_app_reprs_set
The criteria that reprs cannot be replaced with another new set of reprs has been removed. This check is not needed since the only use case that could exercise this at the moment, would be to modify the number of SRIOV VFs without first disabling them. This case is explicitly disallowed in any case and subsequent patches in this series need to be able to replace the running set of reprs. All cases where the return code used to be checked for the nfp_app_reprs_set function have been removed. As stated above, it is not possible for the current code to encounter a case where reprs exist and need to be replaced. Signed-off-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: Simon Horman <simon.horman@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7717c319d8
commit
51ccc37d9d
|
@ -142,8 +142,8 @@ nfp_flower_spawn_vnic_reprs(struct nfp_app *app,
|
||||||
{
|
{
|
||||||
u8 nfp_pcie = nfp_cppcore_pcie_unit(app->pf->cpp);
|
u8 nfp_pcie = nfp_cppcore_pcie_unit(app->pf->cpp);
|
||||||
struct nfp_flower_priv *priv = app->priv;
|
struct nfp_flower_priv *priv = app->priv;
|
||||||
struct nfp_reprs *reprs, *old_reprs;
|
|
||||||
enum nfp_port_type port_type;
|
enum nfp_port_type port_type;
|
||||||
|
struct nfp_reprs *reprs;
|
||||||
const u8 queue = 0;
|
const u8 queue = 0;
|
||||||
int i, err;
|
int i, err;
|
||||||
|
|
||||||
|
@ -194,11 +194,7 @@ nfp_flower_spawn_vnic_reprs(struct nfp_app *app,
|
||||||
reprs->reprs[i]->name);
|
reprs->reprs[i]->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
old_reprs = nfp_app_reprs_set(app, repr_type, reprs);
|
nfp_app_reprs_set(app, repr_type, reprs);
|
||||||
if (IS_ERR(old_reprs)) {
|
|
||||||
err = PTR_ERR(old_reprs);
|
|
||||||
goto err_reprs_clean;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
err_reprs_clean:
|
err_reprs_clean:
|
||||||
|
@ -222,8 +218,8 @@ static int
|
||||||
nfp_flower_spawn_phy_reprs(struct nfp_app *app, struct nfp_flower_priv *priv)
|
nfp_flower_spawn_phy_reprs(struct nfp_app *app, struct nfp_flower_priv *priv)
|
||||||
{
|
{
|
||||||
struct nfp_eth_table *eth_tbl = app->pf->eth_tbl;
|
struct nfp_eth_table *eth_tbl = app->pf->eth_tbl;
|
||||||
struct nfp_reprs *reprs, *old_reprs;
|
|
||||||
struct sk_buff *ctrl_skb;
|
struct sk_buff *ctrl_skb;
|
||||||
|
struct nfp_reprs *reprs;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
@ -280,11 +276,7 @@ nfp_flower_spawn_phy_reprs(struct nfp_app *app, struct nfp_flower_priv *priv)
|
||||||
phys_port, reprs->reprs[phys_port]->name);
|
phys_port, reprs->reprs[phys_port]->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
old_reprs = nfp_app_reprs_set(app, NFP_REPR_TYPE_PHYS_PORT, reprs);
|
nfp_app_reprs_set(app, NFP_REPR_TYPE_PHYS_PORT, reprs);
|
||||||
if (IS_ERR(old_reprs)) {
|
|
||||||
err = PTR_ERR(old_reprs);
|
|
||||||
goto err_reprs_clean;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The MAC_REPR control message should be sent after the MAC
|
/* The MAC_REPR control message should be sent after the MAC
|
||||||
* representors are registered using nfp_app_reprs_set(). This is
|
* representors are registered using nfp_app_reprs_set(). This is
|
||||||
|
|
|
@ -106,14 +106,8 @@ nfp_app_reprs_set(struct nfp_app *app, enum nfp_repr_type type,
|
||||||
|
|
||||||
old = rcu_dereference_protected(app->reprs[type],
|
old = rcu_dereference_protected(app->reprs[type],
|
||||||
lockdep_is_held(&app->pf->lock));
|
lockdep_is_held(&app->pf->lock));
|
||||||
if (reprs && old) {
|
|
||||||
old = ERR_PTR(-EBUSY);
|
|
||||||
goto exit_unlock;
|
|
||||||
}
|
|
||||||
|
|
||||||
rcu_assign_pointer(app->reprs[type], reprs);
|
rcu_assign_pointer(app->reprs[type], reprs);
|
||||||
|
|
||||||
exit_unlock:
|
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue