]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit34c1f98260f939471a74770681e91f07192a5901
tree239ed2164ac2f56234694509070020a1dcce98a9
parent6388f5c2fce1c3fa5cdc216c36b2f6a70c669c7a
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: 2c44df3f81da ("net: Introduce VRF device driver")
Fixes: cd662513e003 ("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