qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-1.6] pxa2xx: Avoid object_get_link_property(


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH for-1.6] pxa2xx: Avoid object_get_link_property() assertion for "parent_bus"
Date: Sun, 04 Aug 2013 15:17:31 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130620 Thunderbird/17.0.7

Am 04.08.2013 15:05, schrieb Andreas Färber:
> pxa2xx_i2c_init() creates a pxa2xx-i2c-slave device on a second i2c-bus,
> which has a NULL parent device. This causes an assertion in
> object_get_canonical_path() when accessing pxa2xx-i2c-slave's
> "parent_bus" link<bus> property in tosa and likely other PXA2xx machines.
> 
> Fix this by using the pxa2xx_i2c device, created just before, as parent.
> 
> Signed-off-by: Andreas Färber <address@hidden>

CC'ing Anthony as this may be lurking elsewhere, too.

Unfortunately qtest can still only send QMP command but does not return
the response, so we can't generically test walking the QOM composition
tree in my proposed qom-test.

Andreas

> ---
>  hw/arm/pxa2xx.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c
> index 7de6453..17ddd3f 100644
> --- a/hw/arm/pxa2xx.c
> +++ b/hw/arm/pxa2xx.c
> @@ -1479,6 +1479,7 @@ PXA2xxI2CState *pxa2xx_i2c_init(hwaddr base,
>      DeviceState *dev;
>      SysBusDevice *i2c_dev;
>      PXA2xxI2CState *s;
> +    i2c_bus *i2cbus;
>  
>      dev = qdev_create(NULL, TYPE_PXA2XX_I2C);
>      qdev_prop_set_uint32(dev, "size", region_size + 1);
> @@ -1491,7 +1492,8 @@ PXA2xxI2CState *pxa2xx_i2c_init(hwaddr base,
>  
>      s = PXA2XX_I2C(i2c_dev);
>      /* FIXME: Should the slave device really be on a separate bus?  */
> -    dev = i2c_create_slave(i2c_init_bus(NULL, "dummy"), "pxa2xx-i2c-slave", 
> 0);
> +    i2cbus = i2c_init_bus(dev, "dummy");
> +    dev = i2c_create_slave(i2cbus, "pxa2xx-i2c-slave", 0);
>      s->slave = FROM_I2C_SLAVE(PXA2xxI2CSlaveState, I2C_SLAVE(dev));
>      s->slave->host = s;
>  

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]