On 21. 08. 24, 15:37, Sasha Levin wrote:
This is a note to let you know that I've just added the patch titled
serial: pch: Don't disable interrupts while acquiring lock in ISR.
to the 6.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
serial-pch-don-t-disable-interrupts-while-acquiring-.patch
and it can be found in the queue-6.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.
I feel so. It does not fix anything real. It is a prep for
d47dd323bf959. So unless you take that too, this one does not make sense
on its own.
commit 2e7194802a740ab6ef47e19e56bd1b06c03610d3
Author: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Date: Fri Mar 1 22:45:28 2024 +0100
serial: pch: Don't disable interrupts while acquiring lock in ISR.
[ Upstream commit f8ff23ebce8c305383c8070e1ea3b08a69eb1e8d ]
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().
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20240301215246.891055-16-bigeasy@xxxxxxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
index abff1c6470f6a..d638e890ef6f0 100644
--- a/drivers/tty/serial/pch_uart.c
+++ b/drivers/tty/serial/pch_uart.c
@@ -1023,11 +1023,10 @@ static irqreturn_t pch_uart_interrupt(int irq, void *dev_id)
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);
@@ -1087,7 +1086,7 @@ static irqreturn_t pch_uart_interrupt(int irq, void *dev_id)
handled |= (unsigned int)ret;
}
- spin_unlock_irqrestore(&priv->lock, flags);
+ spin_unlock(&priv->lock);
return IRQ_RETVAL(handled);
}
--
js
suse labs