um: virtio_uml: mark device as unregistered when breaking it
authorBenjamin Berg <benjamin.berg@intel.com>
Thu, 9 Feb 2023 09:00:03 +0000 (10:00 +0100)
committerRichard Weinberger <richard@nod.at>
Mon, 13 Feb 2023 09:14:32 +0000 (10:14 +0100)
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>
arch/um/drivers/virtio_uml.c

index 198aaed81ce60f1bf7d1b876edeed8a4a3847a56..ecfaae7096e8538a531c46f8b0d8fc051d04ae97 100644 (file)
@@ -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);
 }