Merge branch 'vsock-virtio-fixes'
authorDavid S. Miller <davem@davemloft.net>
Tue, 2 Jul 2019 02:09:07 +0000 (19:09 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Jul 2019 02:09:07 +0000 (19:09 -0700)
commiteb1f5c02ddf5ef51fcd746f6ff55b93935fc981c
tree8bc5871ecca3409ab4de4e17fd9b481a2f965705
parent7c31e54aeee517d1318dfc0bde9fa7de75893dc6
parent0d20e56ecca0f5025f9041d11ee247129b5e48ce
Merge branch 'vsock-virtio-fixes'

Stefano Garzarella says:

====================
vsock/virtio: several fixes in the .probe() and .remove()

During the review of "[PATCH] vsock/virtio: Initialize core virtio vsock
before registering the driver", Stefan pointed out some possible issues
in the .probe() and .remove() callbacks of the virtio-vsock driver.

This series tries to solve these issues:
- Patch 1 adds RCU critical sections to avoid use-after-free of
  'the_virtio_vsock' pointer.
- Patch 2 stops workers before to call vdev->config->reset(vdev) to
  be sure that no one is accessing the device.
- Patch 3 moves the works flush at the end of the .remove() to avoid
  use-after-free of 'vsock' object.

v2:
- Patch 1: use RCU to protect 'the_virtio_vsock' pointer
- Patch 2: no changes
- Patch 3: flush works only at the end of .remove()
- Removed patch 4 because virtqueue_detach_unused_buf() returns all the buffers
  allocated.

v1: https://patchwork.kernel.org/cover/10964733/
====================

Signed-off-by: David S. Miller <davem@davemloft.net>