rtnl: add helper to send if skb is not null
authorPedro Tammela <pctammela@mojatatu.com>
Fri, 8 Dec 2023 19:28:43 +0000 (16:28 -0300)
committerJakub Kicinski <kuba@kernel.org>
Tue, 12 Dec 2023 02:52:57 +0000 (18:52 -0800)
This is a convenience helper for routines handling conditional rtnl
events, that is code that might send a notification depending on
rtnl_has_listeners/rtnl_notify_needed.

Instead of:
   if (skb)
      rtnetlink_send(...)

Use:
      rtnetlink_maybe_send(...)

Reviewed-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: Pedro Tammela <pctammela@mojatatu.com>
Link: https://lore.kernel.org/r/20231208192847.714940-4-pctammela@mojatatu.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/rtnetlink.h

index 0cbbbded0331942e921e3338669ce3cffe43e8b2..6a8543b34e2c0969a35f239740b0dd9ee752dc27 100644 (file)
 #include <uapi/linux/rtnetlink.h>
 
 extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo);
+
+static inline int rtnetlink_maybe_send(struct sk_buff *skb, struct net *net,
+                                      u32 pid, u32 group, int echo)
+{
+       return !skb ? 0 : rtnetlink_send(skb, net, pid, group, echo);
+}
+
 extern int rtnl_unicast(struct sk_buff *skb, struct net *net, u32 pid);
 extern void rtnl_notify(struct sk_buff *skb, struct net *net, u32 pid,
                        u32 group, const struct nlmsghdr *nlh, gfp_t flags);