I recreated the patch series based on your qbus walker of git://repo.or.cz/qemu/aliguori.git
Anthony, can you please review the first three patches and merge them if okay? BTW what's the merge plan of the repo? Any chance to merge the walker part first? Patch description: Introduce bus reset callback at qbus layer and clean up pci bus reset by utilizing it. At last implement pci secondary bus reset which is my motivation. But I suppose scsi bus and ide bus also can take advantage of this patch series. Changes v2 -> v3: - rebased to Anthony's qdev clean up tree. - utilize qbus walker. Changes v1 -> v2: - addressed personal feed back from Gerd. - reset signal are triggered by bus and propagated down into device. - Only 5/8 is modified. Other patches remains same. Isaku Yamahata (6): qdev: Make qbus_walk_children() call busfn for root bus. qdev: introduce reset call back for qbus level. qdev: introduce a helper function which triggers reset from a given device. pci: make pci reset use qdev reset frame work. pci: teach pci devices that have reset callback how to reset common registers. pci bridge: implement secondary bus reset. hw/e1000.c | 1 + hw/lsi53c895a.c | 2 + hw/pci.c | 45 +++++++++++++++++++++++++++++++++---- hw/pci.h | 2 + hw/pcnet.c | 1 + hw/qdev-core.h | 6 +++++ hw/qdev.c | 66 ++++++++++++++++++++++++++++++++++++------------------ hw/rtl8139.c | 2 + hw/virtio-pci.c | 1 + 9 files changed, 99 insertions(+), 27 deletions(-)