[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 2/6] sparc32-ledma: use object_initialize_child() for lance c
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH 2/6] sparc32-ledma: use object_initialize_child() for lance child object |
Date: |
Sun, 20 Sep 2020 12:49:19 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0 |
On 9/20/20 10:20 AM, Mark Cave-Ayland wrote:
> Store the child object directly within the sparc32-ledma object rather than
> using link properties.
>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> hw/dma/sparc32_dma.c | 14 ++++++++------
> include/hw/sparc/sparc32_dma.h | 2 +-
> 2 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/hw/dma/sparc32_dma.c b/hw/dma/sparc32_dma.c
> index b25a212f7a..84196afb95 100644
> --- a/hw/dma/sparc32_dma.c
> +++ b/hw/dma/sparc32_dma.c
> @@ -331,24 +331,26 @@ static const TypeInfo sparc32_espdma_device_info = {
> static void sparc32_ledma_device_init(Object *obj)
> {
> DMADeviceState *s = SPARC32_DMA_DEVICE(obj);
> + LEDMADeviceState *ls = SPARC32_LEDMA_DEVICE(obj);
>
> memory_region_init_io(&s->iomem, OBJECT(s), &dma_mem_ops, s,
> "ledma-mmio", DMA_SIZE);
> +
> + object_initialize_child(obj, "lance", &ls->lance, TYPE_LANCE);
> }
>
> static void sparc32_ledma_device_realize(DeviceState *dev, Error **errp)
> {
> - DeviceState *d;
> + LEDMADeviceState *s = SPARC32_LEDMA_DEVICE(dev);
> + SysBusPCNetState *lance = SYSBUS_PCNET(&s->lance);
> NICInfo *nd = &nd_table[0];
>
> /* FIXME use qdev NIC properties instead of nd_table[] */
> qemu_check_nic_model(nd, TYPE_LANCE);
>
> - d = qdev_new(TYPE_LANCE);
> - object_property_add_child(OBJECT(dev), "lance", OBJECT(d));
> - qdev_set_nic_properties(d, nd);
> - object_property_set_link(OBJECT(d), "dma", OBJECT(dev), &error_abort);
> - sysbus_realize_and_unref(SYS_BUS_DEVICE(d), &error_fatal);
> + qdev_set_nic_properties(DEVICE(lance), nd);
> + object_property_set_link(OBJECT(lance), "dma", OBJECT(dev),
> &error_abort);
> + sysbus_realize(SYS_BUS_DEVICE(lance), &error_fatal);
> }
>
> static void sparc32_ledma_device_class_init(ObjectClass *klass, void *data)
> diff --git a/include/hw/sparc/sparc32_dma.h b/include/hw/sparc/sparc32_dma.h
> index a7b1dd8418..f2bfe272ba 100644
> --- a/include/hw/sparc/sparc32_dma.h
> +++ b/include/hw/sparc/sparc32_dma.h
> @@ -43,7 +43,7 @@ DECLARE_INSTANCE_CHECKER(LEDMADeviceState,
> SPARC32_LEDMA_DEVICE,
> struct LEDMADeviceState {
> DMADeviceState parent_obj;
>
> - SysBusPCNetState *lance;
> + SysBusPCNetState lance;
> };
>
> #define TYPE_SPARC32_DMA "sparc32-dma"
>