diff -r d95ea17567c6 linux-2.6-xen-sparse/arch/xen/kernel/reboot.c --- a/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Thu Aug 11 08:59:47 2005 +++ b/linux-2.6-xen-sparse/arch/xen/kernel/reboot.c Thu Aug 11 20:40:09 2005 @@ -254,7 +254,8 @@ char *str; str = (char *)xenbus_read("control", "shutdown", NULL); - if (IS_ERR(str)) + if (IS_ERR(str)|| + !strcmp(str, "-1")) /* ignore recursive shutdown event */ return; xenbus_printf("control", "shutdown", "%i", SHUTDOWN_INVALID);