summaryrefslogtreecommitdiff
path: root/drivers/net/wimax
diff options
context:
space:
mode:
authorVlad Yasevich <vyasevich@gmail.com>2014-09-23 00:34:17 +0400
committerDavid S. Miller <davem@davemloft.net>2014-09-26 23:20:26 +0400
commit40b8fe45d1f094e3babe7b2dc2b71557ab71401d (patch)
tree08a47cc84bcd92fcdb02ae944802694c5edc7e54 /drivers/net/wimax
parent2b07f0d2f683dc001e70a0c68cd29c6f63babd11 (diff)
downloadlinux-40b8fe45d1f094e3babe7b2dc2b71557ab71401d.tar.xz
macvtap: Fix race between device delete and open.
In macvtap device delete and open calls can race and this causes a list curruption of the vlan queue_list. The race intself is triggered by the idr accessors that located the vlan device. The device is stored into and removed from the idr under both an rtnl and a mutex. However, when attempting to locate the device in idr, only a mutex is taken. As a result, once cpu perfoming a delete may take an rtnl and wait for the mutex, while another cput doing an open() will take the idr mutex first to fetch the device pointer and later take an rtnl to add a queue for the device which may have just gotten deleted. With this patch, we now hold the rtnl for the duration of the macvtap_open() call thus making sure that open will not race with delete. CC: Michael S. Tsirkin <mst@redhat.com> CC: Jason Wang <jasowang@redhat.com> Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wimax')
0 files changed, 0 insertions, 0 deletions