Subject: qdev: convert watchdogs From: Markus Armbruster armbru@redhat.com Fri Aug 21 10:31:34 2009 +0200 Date: Thu Aug 27 20:35:24 2009 -0500: Git: 09aaa1602f9381c0e0fb539390b1793e51bdfc7b * THIS IS ONLY THE BUG FIX PART OF THE UPSTREAM PATCH * Fixes ib700 not to use vm_clock before it is initialized: in wdt_ib700_init(), called from register_watchdogs(), which runs before init_timers(). The bug made ib700_write_enable_reg() crash in qemu_del_timer(). Signed-off-by: Markus Armbruster Signed-off-by: Anthony Liguori Index: xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_ib700.c =================================================================== --- xen-4.1.2-testing.orig/tools/ioemu-qemu-xen/hw/wdt_ib700.c +++ xen-4.1.2-testing/tools/ioemu-qemu-xen/hw/wdt_ib700.c @@ -93,6 +93,7 @@ static int ib700_load(QEMUFile *f, void /* Create and initialize a virtual IB700 during PC creation. */ static void ib700_pc_init(PCIBus *unused) { + timer = qemu_new_timer(vm_clock, ib700_timer_expired, NULL); register_savevm("ib700_wdt", -1, 0, ib700_save, ib700_load, NULL); register_ioport_write(0x441, 2, 1, ib700_write_disable_reg, NULL); @@ -108,5 +109,4 @@ static WatchdogTimerModel model = { void wdt_ib700_init(void) { watchdog_add_model(&model); - timer = qemu_new_timer(vm_clock, ib700_timer_expired, NULL); }