ipv4: Add __must_check to nexthop removal functions

These functions return a signal whether FIB flushing is required which
must not be ignored. Use the compiler to help with enforcing this
requirement in the future.

Signed-off-by: Cosmin Ratiu <cratiu@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Link: https://patch.msgid.link/20260507075606.322405-4-cratiu@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Cosmin Ratiu
2026-05-07 10:56:06 +03:00
committed by Jakub Kicinski
parent 35ce55100c
commit 5dcbd64e66

View File

@@ -20,8 +20,8 @@
#define NH_RES_DEFAULT_IDLE_TIMER (120 * HZ)
#define NH_RES_DEFAULT_UNBALANCED_TIMER 0 /* No forced rebalancing. */
static bool remove_nexthop(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo);
static bool __must_check remove_nexthop(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo);
#define NH_DEV_HASHBITS 8
#define NH_DEV_HASHSIZE (1U << NH_DEV_HASHBITS)
@@ -2016,9 +2016,9 @@ static void nh_hthr_group_rebalance(struct nh_group *nhg)
}
}
static bool remove_nh_grp_entry(struct net *net, struct nh_grp_entry *nhge,
struct nl_info *nlinfo,
struct list_head *deferred_free)
static bool __must_check
remove_nh_grp_entry(struct net *net, struct nh_grp_entry *nhge,
struct nl_info *nlinfo, struct list_head *deferred_free)
{
struct nh_grp_entry *nhges, *new_nhges;
struct nexthop *nhp = nhge->nh_parent;
@@ -2095,8 +2095,9 @@ static bool remove_nh_grp_entry(struct net *net, struct nh_grp_entry *nhge,
return false;
}
static bool remove_nexthop_from_groups(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo)
static bool __must_check
remove_nexthop_from_groups(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo)
{
struct nh_grp_entry *nhge, *tmp;
LIST_HEAD(deferred_free);
@@ -2146,7 +2147,8 @@ static void remove_nexthop_group(struct nexthop *nh, struct nl_info *nlinfo)
}
/* not called for nexthop replace */
static bool __remove_nexthop_fib(struct net *net, struct nexthop *nh)
static bool __must_check __remove_nexthop_fib(struct net *net,
struct nexthop *nh)
{
bool need_flush = !list_empty(&nh->fi_list);
struct fib6_info *f6i;
@@ -2177,8 +2179,8 @@ static bool __remove_nexthop_fib(struct net *net, struct nexthop *nh)
return need_flush;
}
static bool __remove_nexthop(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo)
static bool __must_check __remove_nexthop(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo)
{
bool need_flush = __remove_nexthop_fib(net, nh);
@@ -2197,8 +2199,8 @@ static bool __remove_nexthop(struct net *net, struct nexthop *nh,
return need_flush;
}
static bool remove_nexthop(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo)
static bool __must_check remove_nexthop(struct net *net, struct nexthop *nh,
struct nl_info *nlinfo)
{
bool need_flush;