Thread (22 messages) flat view 22 messages, 4 authors, 2012-05-23

Re: [PATCH] ipv4: fix the rcu race between free_fib_info and ip_route_output_slow

From: Eric Dumazet <hidden>
Date: 2012-05-23 05:02:57
Also in: lkml

On Wed, 2012-05-23 at 12:54 +0800, Yanmin Zhang wrote:
quoted
fi->fib_dev (aka fib_nh[0].nh_dev) need full RCU protection.
The new patch posted at https://lkml.org/lkml/2012/5/22/558 does move the
resetting to RCU protection.
Its not enough.

We must take care that all users are in a RCU protected region.

They might be already, but a full check is needed.

For example 

net/ipv4/fib_trie.c:2563:    fi->fib_dev ? fi->fib_dev->name : "*"

looks to be safe (because already in a rcu_read_lock())

But its not.

Right thing would be to do :

struct net_device *ndev = rcu_dereference(fi->fib_dev)

	...
	ndev ? ndev->name : "*"
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help