]> git.baikalelectronics.ru Git - kernel.git/commit
macvtap: fix a possible race between queue selection and changing queues
authorJason Wang <jasowang@redhat.com>
Wed, 5 Jun 2013 23:54:33 +0000 (23:54 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 8 Jun 2013 06:49:08 +0000 (23:49 -0700)
commitc777bba68c879f1edb89e936d35c4ba534b9a3d3
tree2a0c920af1a2a7f748d81248cb027ca12f7f0bb5
parent80c1d6e86d42584974a7a6a205527239cd97f7ec
macvtap: fix a possible race between queue selection and changing queues

Complier may generate codes that re-read the vlan->numvtaps during
macvtap_get_queue(). This may lead a race if vlan->numvtaps were changed in the
same time and which can lead unexpected result (e.g. very huge value).

We need prevent the compiler from generating such codes by adding an
ACCESS_ONCE() to make sure vlan->numvtaps were only read once.

Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macvtap.c