OSDN Git Service

virtio_net: move tx vq operation under tx queue lock
authorMichael S. Tsirkin <mst@redhat.com>
Tue, 13 Apr 2021 05:35:26 +0000 (01:35 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Sat, 3 Jul 2021 08:51:17 +0000 (04:51 -0400)
commit5a2f966d0f3fa0ef6dada7ab9eda74cacee96b8a
tree4a35a4b359dbc99a4a6f7d5d43f6513c0a326fc3
parent6f5312f801836e6af9bcbb0bdb44dc423e129206
virtio_net: move tx vq operation under tx queue lock

It's unsafe to operate a vq from multiple threads.
Unfortunately this is exactly what we do when invoking
clean tx poll from rx napi.
Same happens with napi-tx even without the
opportunistic cleaning from the receive interrupt: that races
with processing the vq in start_xmit.

As a fix move everything that deals with the vq to under tx lock.

Fixes: b92f1e6751a6 ("virtio-net: transmit napi")
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/net/virtio_net.c