make atmel serial driver use IRQF_NODELAY interrupt. On 2.6.31 the kernel locks up during boot if this driver uses a normal IRQ thread, since it is shared with the system timer interrupt that runs in NODELAY mode. This is a new bug in the 2.6.31 kernel on IRQ sharing. This driver requires NODELAY anyway since the normal threaded interrupts latencies can be that big that buffer overflows would occur. Signed-off-by: Remy Bohmer --- drivers/serial/atmel_serial.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-2.6.31/drivers/serial/atmel_serial.c =================================================================== --- linux-2.6.31.orig/drivers/serial/atmel_serial.c 2009-09-22 09:10:16.000000000 +0200 +++ linux-2.6.31/drivers/serial/atmel_serial.c 2009-09-22 09:11:26.000000000 +0200 @@ -808,7 +808,8 @@ static int atmel_startup(struct uart_por /* * Allocate the IRQ */ - retval = request_irq(port->irq, atmel_interrupt, IRQF_SHARED, + retval = request_irq(port->irq, atmel_interrupt, + IRQF_SHARED | IRQF_NODELAY, tty ? tty->name : "atmel_serial", port); if (retval) { printk("atmel_serial: atmel_startup - Can't get irq\n");