Re: Patch "serial: pch: Don't disable interrupts while acquiring lock in ISR." has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux