2011/11/23 Peter Maydell <peter.mayd...@linaro.org> > 2011/11/22 Benoît Canet <benoit.ca...@gmail.com>: > > 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.