Hi, hw/watchdog/wdt_diag288.c use 2 different resets:
1/ registered handler: qemu_register_reset(diag288_reset, diag288); 2/ DeviceClass reset: dc->reset = wdt_diag288_reset; diag288_reset() simply calls wdt_diag288_reset(): static void wdt_diag288_reset(DeviceState *dev) { DIAG288State *diag288 = DIAG288(dev); diag288->enabled = false; timer_del(diag288->timer); } static void diag288_reset(void *opaque) { DeviceState *diag288 = opaque; wdt_diag288_reset(diag288); } Why do we need this distinction? Is this some special corner case? Isn't this device connected to the QOM bus? Thanks, Phil.