Message ID | 20180905190414.5477-6-viro@ZenIV.linux.org.uk |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | [1/7] fix hnode refcounting | expand |
On 2018-09-05 3:04 p.m., Al Viro wrote: > From: Al Viro <viro@zeniv.linux.org.uk> > > unused > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> cheers, jamal
On Wed, Sep 5, 2018 at 12:04 PM Al Viro <viro@zeniv.linux.org.uk> wrote: > > From: Al Viro <viro@zeniv.linux.org.uk> > > unused > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> > --- > net/sched/cls_u32.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c > index 8a1a573487bd..be9240ae1417 100644 > --- a/net/sched/cls_u32.c > +++ b/net/sched/cls_u32.c > @@ -98,7 +98,6 @@ struct tc_u_common { > int refcnt; > struct idr handle_idr; > struct hlist_node hnode; > - struct rcu_head rcu; > }; Just FYI: This was added when RCU was introduced to u32 fast path, it looks like on fast path we never touch tc_u_common, we only use tp->root, all the rest are slow paths with RTNL lock, so it is probably fine to just remove it rather than converting that kfree() to kfree_rcu().
On Thu, Sep 06, 2018 at 09:18:47PM -0700, Cong Wang wrote: > On Wed, Sep 5, 2018 at 12:04 PM Al Viro <viro@zeniv.linux.org.uk> wrote: > > > > From: Al Viro <viro@zeniv.linux.org.uk> > > > > unused > > > > Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> > > --- > > net/sched/cls_u32.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c > > index 8a1a573487bd..be9240ae1417 100644 > > --- a/net/sched/cls_u32.c > > +++ b/net/sched/cls_u32.c > > @@ -98,7 +98,6 @@ struct tc_u_common { > > int refcnt; > > struct idr handle_idr; > > struct hlist_node hnode; > > - struct rcu_head rcu; > > }; > > Just FYI: > > This was added when RCU was introduced to u32 fast path, > it looks like on fast path we never touch tc_u_common, we > only use tp->root, all the rest are slow paths with RTNL lock, > so it is probably fine to just remove it rather than converting > that kfree() to kfree_rcu(). *nod* In any case, if u32_classify() grows that dereference, we can always re-add ->rcu at the same time.
diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c index 8a1a573487bd..be9240ae1417 100644 --- a/net/sched/cls_u32.c +++ b/net/sched/cls_u32.c @@ -98,7 +98,6 @@ struct tc_u_common { int refcnt; struct idr handle_idr; struct hlist_node hnode; - struct rcu_head rcu; }; static inline unsigned int u32_hash_fold(__be32 key,