* [PATCH net] net: set fib rule refcount after malloc
@ 2017-07-13 20:36 David Ahern
2017-07-13 20:43 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: David Ahern @ 2017-07-13 20:36 UTC (permalink / raw)
To: edumazet, idosch, jiri, netdev; +Cc: David Ahern
The configure callback of fib_rules_ops can change the refcnt of a
fib rule. For instance, mlxsw takes a refcnt when adding the processing
of the rule to a work queue. Thus the rule refcnt can not be reset to
to 1 afterwards. Move the refcnt setting to after the allocation.
Fixes: 5361e209dd30 ("net: avoid one splat in fib_nl_delrule()")
Signed-off-by: David Ahern <dsahern@gmail.com>
---
net/core/fib_rules.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
index a0093e1b0235..fdcb1bcd2afa 100644
--- a/net/core/fib_rules.c
+++ b/net/core/fib_rules.c
@@ -400,6 +400,7 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh,
err = -ENOMEM;
goto errout;
}
+ refcount_set(&rule->refcnt, 1);
rule->fr_net = net;
rule->pref = tb[FRA_PRIORITY] ? nla_get_u32(tb[FRA_PRIORITY])
@@ -517,8 +518,6 @@ int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr *nlh,
last = r;
}
- refcount_set(&rule->refcnt, 1);
-
if (last)
list_add_rcu(&rule->list, &last->list);
else
--
2.1.4
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH net] net: set fib rule refcount after malloc
2017-07-13 20:36 [PATCH net] net: set fib rule refcount after malloc David Ahern
@ 2017-07-13 20:43 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2017-07-13 20:43 UTC (permalink / raw)
To: dsahern; +Cc: edumazet, idosch, jiri, netdev
From: David Ahern <dsahern@gmail.com>
Date: Thu, 13 Jul 2017 13:36:40 -0700
> The configure callback of fib_rules_ops can change the refcnt of a
> fib rule. For instance, mlxsw takes a refcnt when adding the processing
> of the rule to a work queue. Thus the rule refcnt can not be reset to
> to 1 afterwards. Move the refcnt setting to after the allocation.
>
> Fixes: 5361e209dd30 ("net: avoid one splat in fib_nl_delrule()")
> Signed-off-by: David Ahern <dsahern@gmail.com>
Can someone keep a scoreboard of how many bugs and arbitrary
unnecessary changes get introduced because of this new refcount_t
business rather than get fixed?
I'd really like to see how that pans out over the long term especially
with all of the backporting pain this facility is going to cause.
Anyways, David I will apply this, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-07-13 20:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-13 20:36 [PATCH net] net: set fib rule refcount after malloc David Ahern
2017-07-13 20:43 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).