summaryrefslogtreecommitdiff
path: root/arch/um
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin.berg@intel.com>2023-02-09 12:00:03 +0300
committerRichard Weinberger <richard@nod.at>2023-02-13 12:14:32 +0300
commit8e9cd85139a2149d5a7c121b05e0cdb8287311f9 (patch)
tree2ef10c710b96c234ab4d7fdba832bcda7c6da222 /arch/um
parent8a6ca543646f2940832665dbf4e04105262505e2 (diff)
downloadlinux-8e9cd85139a2149d5a7c121b05e0cdb8287311f9.tar.xz
um: virtio_uml: mark device as unregistered when breaking it
Mark the device as not registered anymore when scheduling the work to remove it. Otherwise we could end up scheduling the work multiple times in a row, including scheduling it while it is already running. Fixes: af9fb41ed315 ("um: virtio_uml: Fix broken device handling in time-travel") Signed-off-by: Benjamin Berg <benjamin.berg@intel.com> Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um')
-rw-r--r--arch/um/drivers/virtio_uml.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/um/drivers/virtio_uml.c b/arch/um/drivers/virtio_uml.c
index 198aaed81ce6..ecfaae7096e8 100644
--- a/arch/um/drivers/virtio_uml.c
+++ b/arch/um/drivers/virtio_uml.c
@@ -168,6 +168,8 @@ static void vhost_user_check_reset(struct virtio_uml_device *vu_dev,
if (!vu_dev->registered)
return;
+ vu_dev->registered = 0;
+
virtio_break_device(&vu_dev->vdev);
schedule_work(&pdata->conn_broken_wk);
}