• Michael S. Tsirkin's avatar
    virtio_net: move tx vq operation under tx queue lock · 5a2f966d
    Michael S. Tsirkin authored
    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: b92f1e67 ("virtio-net: transmit napi")
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    5a2f966d
virtio_net.c 87.8 KB