* [PATCH 0/2] net: Use nlmsg_{multicast, unicast} that contain if statement
@ 2021-07-13 12:36 Yajun Deng
2021-07-13 12:36 ` [PATCH 1/2] rtnetlink: use nlmsg_{multicast, unicast} instead of netlink_{broadcast,unicast} Yajun Deng
0 siblings, 1 reply; 3+ messages in thread
From: Yajun Deng @ 2021-07-13 12:36 UTC (permalink / raw)
To: davem, kuba, jhs, xiyou.wangcong, jiri, yajun.deng, johannes.berg,
ryazanov.s.a, avagin, vladimir.oltean, roopa, zhudi21
Cc: linux-kernel, netdev
Patch1: use nlmsg_{multicast, unicast} instead of netlink_
{broadcast,unicast} in rtnetlink.
Patch2: The caller no need deal with the if statements and use
the rename function.
Yajun Deng (2):
rtnetlink: use nlmsg_{multicast, unicast} instead of
netlink_{broadcast,unicast}
net/sched: Remove unnecessary judgment statements
include/linux/rtnetlink.h | 2 +-
net/core/rtnetlink.c | 13 +++++++------
net/sched/act_api.c | 20 ++++++--------------
net/sched/cls_api.c | 28 +++++++++++-----------------
net/sched/sch_api.c | 18 ++++++------------
5 files changed, 31 insertions(+), 50 deletions(-)
--
2.32.0
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 1/2] rtnetlink: use nlmsg_{multicast, unicast} instead of netlink_{broadcast,unicast} 2021-07-13 12:36 [PATCH 0/2] net: Use nlmsg_{multicast, unicast} that contain if statement Yajun Deng @ 2021-07-13 12:36 ` Yajun Deng 2021-07-15 4:21 ` Cong Wang 0 siblings, 1 reply; 3+ messages in thread From: Yajun Deng @ 2021-07-13 12:36 UTC (permalink / raw) To: davem, kuba, jhs, xiyou.wangcong, jiri, yajun.deng, johannes.berg, ryazanov.s.a, avagin, vladimir.oltean, roopa, zhudi21 Cc: linux-kernel, netdev It has a 'NETLINK_CB(' statement in nlmsg_multicast() and has 'if (err' in nlmsg_{multicast, unicast}, use nlmsg_{multicast, unicast} instead of netlink_{broadcast,unicast}. so the caller would not deal with the 'if (err >0 )' statement. Add the return value for nlmsg_multicast. As also, rename rtnetlink_send() to rtnl_send(), this makes style uniform. Signed-off-by: Yajun Deng <yajun.deng@linux.dev> --- include/linux/rtnetlink.h | 2 +- net/core/rtnetlink.c | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index bb9cb84114c1..60bef82e42ab 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h @@ -9,7 +9,7 @@ #include <linux/refcount.h> #include <uapi/linux/rtnetlink.h> -extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); +extern int rtnl_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int 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, struct nlmsghdr *nlh, gfp_t flags); diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index f6af3e74fc44..c081d607bb69 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -707,17 +707,18 @@ static int rtnl_link_fill(struct sk_buff *skb, const struct net_device *dev) return err; } -int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned int group, int echo) +int rtnl_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned int group, int echo) { struct sock *rtnl = net->rtnl; int err = 0; - NETLINK_CB(skb).dst_group = group; - if (echo) + err = nlmsg_multicast(rtnl, skb, pid, group, GFP_KERNEL); + + if (echo) { refcount_inc(&skb->users); - netlink_broadcast(rtnl, skb, pid, group, GFP_KERNEL); - if (echo) - err = netlink_unicast(rtnl, skb, pid, MSG_DONTWAIT); + err = nlmsg_unicast(rtnl, skb, pid); + } + return err; } -- 2.32.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/2] rtnetlink: use nlmsg_{multicast, unicast} instead of netlink_{broadcast,unicast} 2021-07-13 12:36 ` [PATCH 1/2] rtnetlink: use nlmsg_{multicast, unicast} instead of netlink_{broadcast,unicast} Yajun Deng @ 2021-07-15 4:21 ` Cong Wang 0 siblings, 0 replies; 3+ messages in thread From: Cong Wang @ 2021-07-15 4:21 UTC (permalink / raw) To: Yajun Deng Cc: David Miller, Jakub Kicinski, Jamal Hadi Salim, Jiri Pirko, Johannes Berg, ryazanov.s.a, Andrey Wagin, vladimir.oltean, Roopa Prabhu, zhudi (J), LKML, Linux Kernel Network Developers On Tue, Jul 13, 2021 at 5:37 AM Yajun Deng <yajun.deng@linux.dev> wrote: > > It has a 'NETLINK_CB(' statement in nlmsg_multicast() and has 'if (err' > in nlmsg_{multicast, unicast}, use nlmsg_{multicast, unicast} instead > of netlink_{broadcast,unicast}. so the caller would not deal with the > 'if (err >0 )' statement. Add the return value for nlmsg_multicast. > As also, rename rtnetlink_send() to rtnl_send(), this makes style > uniform. > > Signed-off-by: Yajun Deng <yajun.deng@linux.dev> > --- > include/linux/rtnetlink.h | 2 +- > net/core/rtnetlink.c | 13 +++++++------ > 2 files changed, 8 insertions(+), 7 deletions(-) > > diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h > index bb9cb84114c1..60bef82e42ab 100644 > --- a/include/linux/rtnetlink.h > +++ b/include/linux/rtnetlink.h > @@ -9,7 +9,7 @@ > #include <linux/refcount.h> > #include <uapi/linux/rtnetlink.h> > > -extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); > +extern int rtnl_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int 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, struct nlmsghdr *nlh, gfp_t flags); > diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c > index f6af3e74fc44..c081d607bb69 100644 > --- a/net/core/rtnetlink.c > +++ b/net/core/rtnetlink.c > @@ -707,17 +707,18 @@ static int rtnl_link_fill(struct sk_buff *skb, const struct net_device *dev) > return err; > } > > -int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned int group, int echo) > +int rtnl_send(struct sk_buff *skb, struct net *net, u32 pid, unsigned int group, int echo) > { > struct sock *rtnl = net->rtnl; > int err = 0; > > - NETLINK_CB(skb).dst_group = group; > - if (echo) > + err = nlmsg_multicast(rtnl, skb, pid, group, GFP_KERNEL); > + > + if (echo) { > refcount_inc(&skb->users); You also moved this refcount_inc() down after nlmsg_multicast(). Are you sure it is safe? And the name rtnl_send() is bad given that rtnl_unicast() follows it... Thanks. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-07-15 4:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-13 12:36 [PATCH 0/2] net: Use nlmsg_{multicast, unicast} that contain if statement Yajun Deng
2021-07-13 12:36 ` [PATCH 1/2] rtnetlink: use nlmsg_{multicast, unicast} instead of netlink_{broadcast,unicast} Yajun Deng
2021-07-15 4:21 ` Cong Wang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox