2011/11/23 Peter Maydell
<address@hidden>
2011/11/22 Benoît Canet <address@hidden>:
> static int bonito_initfn(PCIDevice *dev)
> {
> PCIBonitoState *s = DO_UPCAST(PCIBonitoState, dev, dev);
> + SysBusDevice *sysbus = sysbus_from_qdev(&dev->qdev);
This looks odd. The device here is a PCIBonitoState, which
is-a PCIDevice, which is-a DeviceState. It's not a SysBusDevice
and merely casting doesn't make it one.
I'm not sure what should be being done here, but I'm pretty
sure this won't work...
It would work using memory_region_add_subregion() and get_system_memory() but
Avi previously noticed me that using get_system_memory() in devices is wrong
because it goes against one of the goals of the memory API : avoiding global knowledge.
I think I need Avi's advices on this one.