From: Markus Armbruster Date: Fri, 4 Sep 2009 22:13:04 +0000 (+0200) Subject: qdev: Fix i6300 upcast X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=d03f09ccdee789168b5a26d2f4c5187717ec5605;p=qemu.git qdev: Fix i6300 upcast Use DO_UPCAST() instead of container_of() to go from PCIDevice to I6300State. This ensures that PCIDevice is the first member of struct I6300State. Signed-off-by: Markus Armbruster Signed-off-by: Anthony Liguori --- diff --git a/hw/wdt_i6300esb.c b/hw/wdt_i6300esb.c index 6927d43c9b..fc038c8e31 100644 --- a/hw/wdt_i6300esb.c +++ b/hw/wdt_i6300esb.c @@ -198,7 +198,7 @@ static void i6300esb_timer_expired(void *vp) static void i6300esb_config_write(PCIDevice *dev, uint32_t addr, uint32_t data, int len) { - I6300State *d = container_of(dev, I6300State, dev); + I6300State *d = DO_UPCAST(I6300State, dev, dev); int old; i6300esb_debug("addr = %x, data = %x, len = %d\n", addr, data, len); @@ -226,7 +226,7 @@ static void i6300esb_config_write(PCIDevice *dev, uint32_t addr, static uint32_t i6300esb_config_read(PCIDevice *dev, uint32_t addr, int len) { - I6300State *d = container_of(dev, I6300State, dev); + I6300State *d = DO_UPCAST(I6300State, dev, dev); uint32_t data; i6300esb_debug ("addr = %x, len = %d\n", addr, len); @@ -360,7 +360,7 @@ static void i6300esb_map(PCIDevice *dev, int region_num, i6300esb_mem_writew, i6300esb_mem_writel, }; - I6300State *d = container_of(dev, I6300State, dev); + I6300State *d = DO_UPCAST(I6300State, dev, dev); int io_mem; i6300esb_debug("addr = %x, size = %x, type = %d\n", addr, size, type); @@ -415,7 +415,7 @@ static int i6300esb_load(QEMUFile *f, void *vp, int version) static int i6300esb_init(PCIDevice *dev) { - I6300State *d = container_of(dev, I6300State, dev); + I6300State *d = DO_UPCAST(I6300State, dev, dev); uint8_t *pci_conf; d->reboot_enabled = 1;