net: vrf: protect changes to private data with rcu
authorDavid Ahern <dsa@cumulusnetworks.com>
Fri, 13 May 2016 19:23:45 +0000 (12:23 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 May 2016 17:46:24 +0000 (13:46 -0400)
commitb0e95ccdd77591f108c938bbc702b57554a1665d
tree239ed2164ac2f56234694509070020a1dcce98a9
parentea1627c20c3462168a087ccecc69084b55b9c0b2
net: vrf: protect changes to private data with rcu

One cpu can be processing packets which includes using the cached route
entries in the vrf device's private data and on another cpu the device
gets deleted which releases the routes and sets the pointers in net_vrf
to NULL. This results in datapath dereferencing a NULL pointer.

Fix by protecting access to dst's with rcu.

Fixes: 193125dbd8eb ("net: Introduce VRF device driver")
Fixes: 35402e313663 ("net: Add IPv6 support to VRF device")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c