As you have known, qdev_reset_one() forever return a ZERO value to its caller, so some branches can not be forever covered in qdev_walk_children().
I thought that the return value for dev->info->reset(dev) can be returned, but dev->info->reset(dev) is referring to a function with void type. Signed-off-by: Zhi Yong Wu <wu...@linux.vnet.ibm.com> --- hw/qdev.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-) diff --git a/hw/qdev.c b/hw/qdev.c index 292b52f..cbc5e02 100644 --- a/hw/qdev.c +++ b/hw/qdev.c @@ -513,10 +513,7 @@ int qdev_walk_children(DeviceState *dev, qdev_walkerfn *devfn, int err; if (devfn) { - err = devfn(dev, opaque); - if (err) { - return err; - } + devfn(dev, opaque); } QLIST_FOREACH(bus, &dev->child_bus, sibling) { -- 1.7.2.3