summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/0015-serial-pch-Don-t-disable-interrupts-while-acquiring-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/0015-serial-pch-Don-t-disable-interrupts-while-acquiring-.patch')
-rw-r--r--debian/patches-rt/0015-serial-pch-Don-t-disable-interrupts-while-acquiring-.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/debian/patches-rt/0015-serial-pch-Don-t-disable-interrupts-while-acquiring-.patch b/debian/patches-rt/0015-serial-pch-Don-t-disable-interrupts-while-acquiring-.patch
new file mode 100644
index 000000000..aad340f32
--- /dev/null
+++ b/debian/patches-rt/0015-serial-pch-Don-t-disable-interrupts-while-acquiring-.patch
@@ -0,0 +1,42 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Fri, 1 Mar 2024 22:45:28 +0100
+Subject: [PATCH 15/18] serial: pch: Don't disable interrupts while acquiring
+ lock in ISR.
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.8/older/patches-6.8.2-rt11.tar.xz
+
+The interrupt service routine is always invoked with disabled
+interrupts.
+
+Remove the _irqsave() from the locking functions in the interrupts
+service routine/ pch_uart_interrupt().
+
+Link: https://lore.kernel.org/r/20240301215246.891055-16-bigeasy@linutronix.de
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ drivers/tty/serial/pch_uart.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+--- a/drivers/tty/serial/pch_uart.c
++++ b/drivers/tty/serial/pch_uart.c
+@@ -1010,11 +1010,10 @@ static irqreturn_t pch_uart_interrupt(in
+ u8 lsr;
+ int ret = 0;
+ unsigned char iid;
+- unsigned long flags;
+ int next = 1;
+ u8 msr;
+
+- spin_lock_irqsave(&priv->lock, flags);
++ spin_lock(&priv->lock);
+ handled = 0;
+ while (next) {
+ iid = pch_uart_hal_get_iid(priv);
+@@ -1074,7 +1073,7 @@ static irqreturn_t pch_uart_interrupt(in
+ handled |= (unsigned int)ret;
+ }
+
+- spin_unlock_irqrestore(&priv->lock, flags);
++ spin_unlock(&priv->lock);
+ return IRQ_RETVAL(handled);
+ }
+