net: Pass 'net' struct as first argument to fib6_info_hw_flags_set()
The next patch will emit notification when hardware flags are changed, in case that fib_notify_on_flag_change sysctl is set to 1. To know sysctl values, net struct is needed. This change is consistent with the IPv4 version, which gets 'net' struct as its first argument. Currently, the only callers of this function are mlxsw and netdevsim. Patch the callers to pass net. Signed-off-by: Amit Cohen <amcohen@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: David Ahern <dsahern@kernel.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Родитель
680aea08e7
Коммит
fbaca8f895
|
@ -5004,8 +5004,8 @@ mlxsw_sp_fib6_entry_hw_flags_set(struct mlxsw_sp *mlxsw_sp,
|
|||
fib6_entry = container_of(fib_entry, struct mlxsw_sp_fib6_entry,
|
||||
common);
|
||||
list_for_each_entry(mlxsw_sp_rt6, &fib6_entry->rt6_list, list)
|
||||
fib6_info_hw_flags_set(mlxsw_sp_rt6->rt, should_offload,
|
||||
!should_offload);
|
||||
fib6_info_hw_flags_set(mlxsw_sp_net(mlxsw_sp), mlxsw_sp_rt6->rt,
|
||||
should_offload, !should_offload);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -5018,7 +5018,8 @@ mlxsw_sp_fib6_entry_hw_flags_clear(struct mlxsw_sp *mlxsw_sp,
|
|||
fib6_entry = container_of(fib_entry, struct mlxsw_sp_fib6_entry,
|
||||
common);
|
||||
list_for_each_entry(mlxsw_sp_rt6, &fib6_entry->rt6_list, list)
|
||||
fib6_info_hw_flags_set(mlxsw_sp_rt6->rt, false, false);
|
||||
fib6_info_hw_flags_set(mlxsw_sp_net(mlxsw_sp), mlxsw_sp_rt6->rt,
|
||||
false, false);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -585,13 +585,15 @@ err_fib6_rt_nh_del:
|
|||
return err;
|
||||
}
|
||||
|
||||
static void nsim_fib6_rt_hw_flags_set(const struct nsim_fib6_rt *fib6_rt,
|
||||
static void nsim_fib6_rt_hw_flags_set(struct nsim_fib_data *data,
|
||||
const struct nsim_fib6_rt *fib6_rt,
|
||||
bool trap)
|
||||
{
|
||||
struct net *net = devlink_net(data->devlink);
|
||||
struct nsim_fib6_rt_nh *fib6_rt_nh;
|
||||
|
||||
list_for_each_entry(fib6_rt_nh, &fib6_rt->nh_list, list)
|
||||
fib6_info_hw_flags_set(fib6_rt_nh->rt, false, trap);
|
||||
fib6_info_hw_flags_set(net, fib6_rt_nh->rt, false, trap);
|
||||
}
|
||||
|
||||
static int nsim_fib6_rt_add(struct nsim_fib_data *data,
|
||||
|
@ -607,7 +609,7 @@ static int nsim_fib6_rt_add(struct nsim_fib_data *data,
|
|||
goto err_fib_dismiss;
|
||||
|
||||
msleep(1);
|
||||
nsim_fib6_rt_hw_flags_set(fib6_rt, true);
|
||||
nsim_fib6_rt_hw_flags_set(data, fib6_rt, true);
|
||||
|
||||
return 0;
|
||||
|
||||
|
@ -641,9 +643,9 @@ static int nsim_fib6_rt_replace(struct nsim_fib_data *data,
|
|||
return err;
|
||||
|
||||
msleep(1);
|
||||
nsim_fib6_rt_hw_flags_set(fib6_rt, true);
|
||||
nsim_fib6_rt_hw_flags_set(data, fib6_rt, true);
|
||||
|
||||
nsim_fib6_rt_hw_flags_set(fib6_rt_old, false);
|
||||
nsim_fib6_rt_hw_flags_set(data, fib6_rt_old, false);
|
||||
nsim_fib6_rt_destroy(fib6_rt_old);
|
||||
|
||||
return 0;
|
||||
|
@ -954,7 +956,7 @@ static void nsim_fib6_rt_free(struct nsim_fib_rt *fib_rt,
|
|||
struct nsim_fib6_rt *fib6_rt;
|
||||
|
||||
fib6_rt = container_of(fib_rt, struct nsim_fib6_rt, common);
|
||||
nsim_fib6_rt_hw_flags_set(fib6_rt, false);
|
||||
nsim_fib6_rt_hw_flags_set(data, fib6_rt, false);
|
||||
nsim_fib_account(&data->ipv6.fib, false);
|
||||
nsim_fib6_rt_destroy(fib6_rt);
|
||||
}
|
||||
|
|
|
@ -336,8 +336,9 @@ static inline void fib6_info_release(struct fib6_info *f6i)
|
|||
call_rcu(&f6i->rcu, fib6_info_destroy_rcu);
|
||||
}
|
||||
|
||||
static inline void fib6_info_hw_flags_set(struct fib6_info *f6i, bool offload,
|
||||
bool trap)
|
||||
static inline void
|
||||
fib6_info_hw_flags_set(struct net *net, struct fib6_info *f6i, bool offload,
|
||||
bool trap)
|
||||
{
|
||||
f6i->offload = offload;
|
||||
f6i->trap = trap;
|
||||
|
|
Загрузка…
Ссылка в новой задаче