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;
}
--
2.43.0