]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
ipv4: Add __must_check to nexthop removal functions
authorCosmin Ratiu <cratiu@nvidia.com>
Thu, 7 May 2026 07:56:06 +0000 (10:56 +0300)
committerJakub Kicinski <kuba@kernel.org>
Sun, 10 May 2026 17:16:01 +0000 (10:16 -0700)
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>
net/ipv4/nexthop.c

index 703954c490d0a95775fafe776846d59cadf68715..6205bd57aa8520f7daf58cd350e5987335becb26 100644 (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;