]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
vhost: Use virtqueue mutex for swapping worker
authorMike Christie <michael.christie@oracle.com>
Sat, 16 Mar 2024 00:47:04 +0000 (19:47 -0500)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 22 May 2024 12:31:15 +0000 (08:31 -0400)
commit34cf9ba5f00a222dddd9fc71de7c68fdaac7fb97
tree236d9bc35d266a074a72a0e02526e40347ec9a59
parent0352c961cb3542b1c03415259d7b85d99457acff
vhost: Use virtqueue mutex for swapping worker

__vhost_vq_attach_worker uses the vhost_dev mutex to serialize the
swapping of a virtqueue's worker. This was done for simplicity because
we are already holding that mutex.

In the next patches where the worker can be killed while in use, we need
finer grained locking because some drivers will hold the vhost_dev mutex
while flushing. However in the SIGKILL handler in the next patches, we
will need to be able to swap workers (set current one to NULL), kill
queued works and stop new flushes while flushes are in progress.

To prepare us, this has us use the virtqueue mutex for swapping workers
instead of the vhost_dev one.

Signed-off-by: Mike Christie <michael.christie@oracle.com>
Message-Id: <20240316004707.45557-7-michael.christie@oracle.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/vhost/vhost.c