[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/1] spapr_vscsi: do not allow device hotplug
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 1/1] spapr_vscsi: do not allow device hotplug |
Date: |
Fri, 21 Aug 2020 13:08:24 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
Cc'ing Markus
On 8/20/20 9:06 PM, Daniel Henrique Barboza wrote:
> We do not implement hotplug in the vscsi bus, but we forgot to
> tell qdev about it. The result is that users are able to hotplug
> devices in the vscsi bus, the devices appear in qdev, but they
> aren't usable by the guest OS unless the user reboots it first.
>
> Setting qbus hotplug_handler to NULL will tell qdev-monitor, via
> qbus_is_hotpluggable(), that we do not support hotplug operations
> in spapr_vscsi.
>
> Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1862059
>
> Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
> ---
> hw/scsi/spapr_vscsi.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
> index d17dc03c73..57f0a1336f 100644
> --- a/hw/scsi/spapr_vscsi.c
> +++ b/hw/scsi/spapr_vscsi.c
> @@ -1219,6 +1219,9 @@ static void spapr_vscsi_realize(SpaprVioDevice *dev,
> Error **errp)
>
> scsi_bus_new(&s->bus, sizeof(s->bus), DEVICE(dev),
> &vscsi_scsi_info, NULL);
> +
> + /* ibmvscsi SCSI bus does not allow hotplug. */
> + qbus_set_hotplug_handler(BUS(&s->bus), NULL);
Can't this be a problem later in DeviceClass::unrealize()?
I was expecting something like, overwriting the parent bus type:
-- >8 --
@@ -1271,6 +1271,7 @@ static void spapr_vscsi_class_init(ObjectClass
*klass, void *data)
DeviceClass *dc = DEVICE_CLASS(klass);
SpaprVioDeviceClass *k = VIO_SPAPR_DEVICE_CLASS(klass);
+ k->bus_type = NULL; /* ibmvscsi SCSI bus does not allow hotplug. */
k->realize = spapr_vscsi_realize;
k->reset = spapr_vscsi_reset;
k->devnode = spapr_vscsi_devnode;
---
> }
>
> void spapr_vscsi_create(SpaprVioBus *bus)
>