On 5/1/18 2:16 AM, Ido Schimmel wrote: > Since commit 9776d32537d2 ("net: Move call_fib_rule_notifiers up in > fib_nl_newrule") it is possible to forbid the installation of > unsupported FIB rules. > > Have mlxsw return an error for non-default FIB rules in addition to the > existing extack message. > > Example: > # ip rule add from 198.51.100.1 table 10 > Error: mlxsw_spectrum: FIB rules not supported. > > Note that offload is only aborted when non-default FIB rules are already > installed and merely replayed during module initialization. > > Signed-off-by: Ido Schimmel <ido...@mellanox.com> > --- > drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c > b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c > index 8e4edb634b11..baea97560029 100644 > --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c > +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c > @@ -5899,7 +5899,7 @@ static int mlxsw_sp_router_fib_rule_event(unsigned long > event, > } > > if (err < 0) > - NL_SET_ERR_MSG_MOD(extack, "FIB rules not supported. Aborting > offload"); > + NL_SET_ERR_MSG_MOD(extack, "FIB rules not supported"); > > return err;
shouldn't mlxsw_sp_router_fib_rule_event return -EOPNOTSUPP instead of -1 (EPERM)? > } > @@ -5926,8 +5926,8 @@ static int mlxsw_sp_router_fib_event(struct > notifier_block *nb, > case FIB_EVENT_RULE_DEL: > err = mlxsw_sp_router_fib_rule_event(event, info, > router->mlxsw_sp); > - if (!err) > - return NOTIFY_DONE; > + if (!err || info->extack) > + return notifier_from_errno(err); > } > > fib_work = kzalloc(sizeof(*fib_work), GFP_ATOMIC); >