On 9/1/22 08:41, Bernhard Beschow wrote:
> According to good QOM practice, an object should only deal with objects
> of its own sub tree. Having devices create an alias on the machine
> object doesn't respect this good practice. To resolve this, create the
> alias in the machine's code.
>
> Signed-off-by: Bernhard Beschow <shentey@gmail.com>
> ---
Acked-by: Daniel Henrique Barboza <danielhb413@gmail.com>
> hw/isa/vt82c686.c | 2 --
> hw/mips/fuloong2e.c | 4 ++++
> hw/ppc/pegasos2.c | 4 ++++
> 3 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c
> index 48cd4d0036..3f9bd0c04d 100644
> --- a/hw/isa/vt82c686.c
> +++ b/hw/isa/vt82c686.c
> @@ -632,8 +632,6 @@ static void via_isa_realize(PCIDevice *d, Error **errp)
> if (!qdev_realize(DEVICE(&s->rtc), BUS(isa_bus), errp)) {
> return;
> }
> - object_property_add_alias(qdev_get_machine(), "rtc-time", OBJECT(&s->rtc),
> - "date");
> isa_connect_gpio_out(ISA_DEVICE(&s->rtc), 0, s->rtc.isairq);
>
> for (i = 0; i < PCI_CONFIG_HEADER_SIZE; i++) {
> diff --git a/hw/mips/fuloong2e.c b/hw/mips/fuloong2e.c
> index 3c46215616..b478483706 100644
> --- a/hw/mips/fuloong2e.c
> +++ b/hw/mips/fuloong2e.c
> @@ -295,6 +295,10 @@ static void mips_fuloong2e_init(MachineState *machine)
> pci_dev = pci_create_simple_multifunction(pci_bus,
> PCI_DEVFN(FULOONG2E_VIA_SLOT, 0),
> true, TYPE_VT82C686B_ISA);
> + object_property_add_alias(OBJECT(machine), "rtc-time",
> + object_resolve_path_component(OBJECT(pci_dev),
> + "rtc"),
> + "date");
> qdev_connect_gpio_out(DEVICE(pci_dev), 0, env->irq[5]);
>
> dev = DEVICE(object_resolve_path_component(OBJECT(pci_dev), "ide"));
> diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c
> index 09fdb7557f..49b753c7cc 100644
> --- a/hw/ppc/pegasos2.c
> +++ b/hw/ppc/pegasos2.c
> @@ -161,6 +161,10 @@ static void pegasos2_init(MachineState *machine)
> /* VIA VT8231 South Bridge (multifunction PCI device) */
> via = pci_create_simple_multifunction(pci_bus, PCI_DEVFN(12, 0), true,
> TYPE_VT8231_ISA);
> + object_property_add_alias(OBJECT(machine), "rtc-time",
> + object_resolve_path_component(OBJECT(via),
> + "rtc"),
> + "date");
> qdev_connect_gpio_out(DEVICE(via), 0,
> qdev_get_gpio_in_named(pm->mv, "gpp", 31));
>