On Wed, Jul 08, 2026 at 10:40:54AM +0100, Mark Cave-Ayland wrote: > On 07/07/2026 17:58, Daniel P. Berrangé wrote: > > > On Fri, Jul 03, 2026 at 10:08:01AM +0100, Mark Cave-Ayland wrote: > > > Signed-off-by: Mark Cave-Ayland <[email protected]> > > > --- > > > include/hw/i386/pc.h | 2 ++ > > > hw/i386/pc.c | 8 ++++++++ > > > hw/i386/pc_sysfw.c | 7 +------ > > > 3 files changed, 11 insertions(+), 6 deletions(-) > > > > > > diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h > > > index 309de2eda1..16cb0ec01f 100644 > > > --- a/include/hw/i386/pc.h > > > +++ b/include/hw/i386/pc.h > > > @@ -40,6 +40,8 @@ typedef struct PCMachineState { > > > Object *alias_pcspk; > > > Object *alias_rtc_time; > > > + Object *alias_pflash0; > > > + Object *alias_pflash1; > > > /* Configuration options: */ > > > uint64_t max_ram_below_4g; > > > diff --git a/hw/i386/pc.c b/hw/i386/pc.c > > > index 13c9c1bfc8..11eef176f4 100644 > > > --- a/hw/i386/pc.c > > > +++ b/hw/i386/pc.c > > > @@ -1762,6 +1762,14 @@ static void pc_machine_class_init(ObjectClass *oc, > > > const void *data) > > > offsetof(X86MachineState, acpi_dev), > > > object_property_allow_set_link, > > > OBJ_PROP_LINK_STRONG); > > > + object_class_property_add_alias(oc, "pflash0", > > > + offsetof(PCMachineState, > > > alias_pflash0), > > > + TYPE_PFLASH_CFI01, > > > + "drive"); > > > + object_class_property_add_alias(oc, "pflash1", > > > + offsetof(PCMachineState, > > > alias_pflash1), > > > + TYPE_PFLASH_CFI01, > > > + "drive"); > > > } > > > static const TypeInfo pc_machine_info = { > > > diff --git a/hw/i386/pc_sysfw.c b/hw/i386/pc_sysfw.c > > > index 1a41a5972b..441e777191 100644 > > > --- a/hw/i386/pc_sysfw.c > > > +++ b/hw/i386/pc_sysfw.c > > > @@ -85,8 +85,7 @@ static PFlashCFI01 *pc_pflash_create(PCMachineState > > > *pcms, > > > qdev_prop_set_uint8(dev, "width", 1); > > > qdev_prop_set_string(dev, "name", name); > > > object_property_add_child(OBJECT(pcms), name, OBJECT(dev)); > > > - object_property_add_alias(OBJECT(pcms), alias_prop_name, > > > - OBJECT(dev), "drive"); > > > + object_property_set_alias(OBJECT(pcms), alias_prop_name, > > > OBJECT(dev)); > > > /* > > > * The returned reference is tied to the child property and > > > * will be removed with object_unparent. > > > @@ -109,16 +108,12 @@ void pc_system_flash_create(PCMachineState *pcms) > > > void pc_system_flash_cleanup_unused(PCMachineState *pcms) > > > { > > > - char *prop_name; > > > int i; > > > assert(PC_MACHINE_GET_CLASS(pcms)->pci_enabled); > > > for (i = 0; i < ARRAY_SIZE(pcms->flash); i++) { > > > if (!qdev_is_realized(DEVICE(pcms->flash[i]))) { > > > - prop_name = g_strdup_printf("pflash%d", i); > > > - object_property_del(OBJECT(pcms), prop_name); > > > - g_free(prop_name); > > > object_unparent(OBJECT(pcms->flash[i])); > > > pcms->flash[i] = NULL; > > > } > > > > Does this externally change visible behaviour ? > > > > The pc_system_flash_cleanup_unused method is run in the instance > > init method, and will purge the 'pflash0' and 'pflash1' properties > > if they were never set. > > > > IIUC with the new code pflash0 and pflash1 will always be visible, > > but would be unset, as object_property_set_alias would not have > > been called. > > > > THe new behaviour is arguably better - IMHO properties should > > always be present, and use "unset" as an explicit state. > > Yes, it does change the behaviour to reflect the fact that the pflash0 and > pflash1 properties always exist: > > Before this series: > > $ ./build/qemu-system-x86_64 -M q35 -monitor stdio > QEMU 11.0.50 monitor - type 'help' for more information > (qemu) qom-get /machine pflash0 > Error: Property 'pc-q35-11.1-machine.pflash0' not found > > After this series: > > $ ./build/qemu-system-x86_64 -M q35 -monitor stdio > QEMU 11.0.50 monitor - type 'help' for more information > (qemu) qom-get /machine pflash0 > ""
As a behaviour change, please call this out in the commit message, since this is an example situation that needs a subsystem maintainer review/ack rather than a general review/ack. With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
