[Qemu-devel] [PATCH] hw/watchdog/wdt_diag288: Mark diag288 watchdog as non-hotpluggable

Thomas Huth posted 1 patch 6 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1502892528-22618-1-git-send-email-thuth@redhat.com
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
hw/watchdog/wdt_diag288.c | 1 +
1 file changed, 1 insertion(+)
[Qemu-devel] [PATCH] hw/watchdog/wdt_diag288: Mark diag288 watchdog as non-hotpluggable
Posted by Thomas Huth 6 years, 7 months ago
QEMU currently aborts when the user tries to hot-unplug a diag288
device:

$ qemu-system-s390x -nographic -nodefaults -S -monitor stdio
QEMU 2.9.92 monitor - type 'help' for more information
(qemu) device_add diag288,id=x
(qemu) device_del x
**
ERROR:qemu/qdev-monitor.c:872:qdev_unplug: assertion failed: (hotplug_ctrl)
Aborted (core dumped)

The device is not designed as hot-pluggable (it should only be used
via the "-watchdog" parameter), so let's simply remove the possibility
to hotplug it to prevent that users can run into this ugly situation.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/watchdog/wdt_diag288.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/hw/watchdog/wdt_diag288.c b/hw/watchdog/wdt_diag288.c
index a7b64e2..47f2892 100644
--- a/hw/watchdog/wdt_diag288.c
+++ b/hw/watchdog/wdt_diag288.c
@@ -121,6 +121,7 @@ static void wdt_diag288_class_init(ObjectClass *klass, void *data)
     dc->realize = wdt_diag288_realize;
     dc->unrealize = wdt_diag288_unrealize;
     dc->reset = wdt_diag288_reset;
+    dc->hotpluggable = false;
     set_bit(DEVICE_CATEGORY_MISC, dc->categories);
     dc->vmsd = &vmstate_diag288;
     diag288->handle_timer = wdt_diag288_handle_timer;
-- 
1.8.3.1


Re: [Qemu-devel] [PATCH] hw/watchdog/wdt_diag288: Mark diag288 watchdog as non-hotpluggable
Posted by Cornelia Huck 6 years, 7 months ago
On Wed, 16 Aug 2017 16:08:48 +0200
Thomas Huth <thuth@redhat.com> wrote:

> QEMU currently aborts when the user tries to hot-unplug a diag288
> device:
> 
> $ qemu-system-s390x -nographic -nodefaults -S -monitor stdio
> QEMU 2.9.92 monitor - type 'help' for more information
> (qemu) device_add diag288,id=x
> (qemu) device_del x
> **
> ERROR:qemu/qdev-monitor.c:872:qdev_unplug: assertion failed: (hotplug_ctrl)
> Aborted (core dumped)
> 
> The device is not designed as hot-pluggable (it should only be used
> via the "-watchdog" parameter), so let's simply remove the possibility
> to hotplug it to prevent that users can run into this ugly situation.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>  hw/watchdog/wdt_diag288.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/hw/watchdog/wdt_diag288.c b/hw/watchdog/wdt_diag288.c
> index a7b64e2..47f2892 100644
> --- a/hw/watchdog/wdt_diag288.c
> +++ b/hw/watchdog/wdt_diag288.c
> @@ -121,6 +121,7 @@ static void wdt_diag288_class_init(ObjectClass *klass, void *data)
>      dc->realize = wdt_diag288_realize;
>      dc->unrealize = wdt_diag288_unrealize;
>      dc->reset = wdt_diag288_reset;
> +    dc->hotpluggable = false;
>      set_bit(DEVICE_CATEGORY_MISC, dc->categories);
>      dc->vmsd = &vmstate_diag288;
>      diag288->handle_timer = wdt_diag288_handle_timer;

Looks good. I'll queue it; I'll wire up diag288 for tcg as well.

Any more non-hotpluggable devices you found? :)