On PREEMPT-RT we may not block on a normal spinlock in IRQ/IRQF_NODELAY-context. This patch fixes this by making the lock a raw_spinlock_t for the Atmel serial console. This patch demands the following patches to be installed first: * atmel_serial_cleanup.patch * atmel_serial_irq_splitup.patch Signed-off-by: Remy Bohmer --- include/linux/serial_core.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) Index: linux-2.6.23/include/linux/serial_core.h =================================================================== --- linux-2.6.23.orig/include/linux/serial_core.h 2007-12-13 13:31:27.000000000 +0100 +++ linux-2.6.23/include/linux/serial_core.h 2007-12-13 16:32:22.000000000 +0100 @@ -226,7 +226,12 @@ struct uart_icount { typedef unsigned int __bitwise__ upf_t; struct uart_port { - spinlock_t lock; /* port lock */ + +#ifdef CONFIG_SERIAL_ATMEL + raw_spinlock_t lock; /* port lock */ +#else + spinlock_t lock; /* port lock */ +#endif unsigned int iobase; /* in/out[bwl] */ unsigned char __iomem *membase; /* read/write[bwl] */ unsigned int irq; /* irq number */