[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC PATCH v2 09/16] hw/core/machine: Remove the dynamic sysbus devices type check
On Thu, Sep 23, 2021 at 2:23 AM Damien Hedde <damien.hedde@xxxxxxxxxxxxx> wrote: > > Now that we check sysbus device types during device creation, we > can remove the check done in the machine init done notifier. > This was the only thing done by this notifier, so we remove the > whole sysbus_notifier structure of the MachineState. > > Note: This notifier was checking all /peripheral and /peripheral-anon > sysbus devices. Now we only check those added by -device cli option or > device_add qmp command when handling the command/option. So if there > are some devices added in one of these containers manually (eg in > machine C code), these will not be checked anymore. > This use case does not seem to appear apart from > hw/xen/xen-legacy-backend.c (it uses qdev_set_id() and in this case, > not for a sysbus device, so it's ok). > > Signed-off-by: Damien Hedde <damien.hedde@xxxxxxxxxxxxx> Acked-by: Alistair Francis <alistair.francis@xxxxxxx> Alistair > --- > include/hw/boards.h | 1 - > hw/core/machine.c | 27 --------------------------- > 2 files changed, 28 deletions(-) > > diff --git a/include/hw/boards.h b/include/hw/boards.h > index 934443c1cd..ccbc40355a 100644 > --- a/include/hw/boards.h > +++ b/include/hw/boards.h > @@ -311,7 +311,6 @@ typedef struct CpuTopology { > struct MachineState { > /*< private >*/ > Object parent_obj; > - Notifier sysbus_notifier; > > /*< public >*/ > > diff --git a/hw/core/machine.c b/hw/core/machine.c > index 1a18912dc8..521438e90a 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -571,18 +571,6 @@ bool > machine_class_is_dynamic_sysbus_dev_allowed(MachineClass *mc, > return allowed; > } > > -static void validate_sysbus_device(SysBusDevice *sbdev, void *opaque) > -{ > - MachineState *machine = opaque; > - MachineClass *mc = MACHINE_GET_CLASS(machine); > - > - if (!device_is_dynamic_sysbus(mc, DEVICE(sbdev))) { > - error_report("Option '-device %s' cannot be handled by this machine", > - object_class_get_name(object_get_class(OBJECT(sbdev)))); > - exit(1); > - } > -} > - > static char *machine_get_memdev(Object *obj, Error **errp) > { > MachineState *ms = MACHINE(obj); > @@ -598,17 +586,6 @@ static void machine_set_memdev(Object *obj, const char > *value, Error **errp) > ms->ram_memdev_id = g_strdup(value); > } > > -static void machine_init_notify(Notifier *notifier, void *data) > -{ > - MachineState *machine = MACHINE(qdev_get_machine()); > - > - /* > - * Loop through all dynamically created sysbus devices and check if they > are > - * all allowed. If a device is not allowed, error out. > - */ > - foreach_dynamic_sysbus_device(validate_sysbus_device, machine); > -} > - > HotpluggableCPUList *machine_query_hotpluggable_cpus(MachineState *machine) > { > int i; > @@ -1030,10 +1007,6 @@ static void machine_initfn(Object *obj) > "Table (HMAT)"); > } > > - /* Register notifier when init is done for sysbus sanity checks */ > - ms->sysbus_notifier.notify = machine_init_notify; > - qemu_add_machine_init_done_notifier(&ms->sysbus_notifier); > - > /* default to mc->default_cpus */ > ms->smp.cpus = mc->default_cpus; > ms->smp.max_cpus = mc->default_cpus; > -- > 2.33.0 > >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |