Messages in this thread Patch in this message | | | Date | Mon, 19 Jan 2009 20:53:25 -0700 | From | Shane Hathaway <> | Subject | [Patch] UML: spurious interrupt freezes guest |
| |
A new instance of user mode linux that I created over the past couple of days worked pretty well except that it had a habit of freezing after a few minutes. Every time it froze, the last message on the console was either:
spurious interrupt in ubd_handler, err = 4
or:
spurious interrupt in ubd_handler, err = 0
This message is generated by arch/um/drivers/ubd_kern.c. I did not work out the cause of the spurious interrupts, but I did come up with a patch that makes the guest recover from spurious interrupts without freezing. It appears that the interrupt handler needs to be reactivated before every exit of ubd_handler(). The patch is below.
Shane
--- linux-2.6.27.12-orig/arch/um/drivers/ubd_kern.c +++ linux-2.6.27.12/arch/um/drivers/ubd_kern.c @@ -489,6 +489,7 @@ break; printk(KERN_ERR "spurious interrupt in ubd_handler, " "err = %d\n", -n); + reactivate_fd(thread_fd, UBD_IRQ); return; }
| |