This is a note to let you know that I've just added the patch titled PCI: aardvark: Do not clear status bits of masked interrupts to the 5.4-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: pci-aardvark-do-not-clear-status-bits-of-masked-interrupts.patch and it can be found in the queue-5.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From a7ca6d7fa3c02c032db5440ff392d96c04684c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <pali@xxxxxxxxxx> Date: Tue, 5 Oct 2021 20:09:45 +0200 Subject: PCI: aardvark: Do not clear status bits of masked interrupts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Pali Rohár <pali@xxxxxxxxxx> commit a7ca6d7fa3c02c032db5440ff392d96c04684c21 upstream. The PCIE_ISR1_REG says which interrupts are currently set / active, including those which are masked. The driver currently reads this register and looks if some unmasked interrupts are active, and if not, it clears status bits of _all_ interrupts, including the masked ones. This is incorrect, since, for example, some drivers may poll these bits. Remove this clearing, and also remove this early return statement completely, since it does not change functionality in any way. Link: https://lore.kernel.org/r/20211005180952.6812-7-kabel@xxxxxxxxxx Fixes: 8c39d710363c ("PCI: aardvark: Add Aardvark PCI host controller driver") Signed-off-by: Pali Rohár <pali@xxxxxxxxxx> Signed-off-by: Marek Behún <kabel@xxxxxxxxxx> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> Reviewed-by: Marek Behún <kabel@xxxxxxxxxx> Cc: stable@xxxxxxxxxxxxxxx Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/pci/controller/pci-aardvark.c | 6 ------ 1 file changed, 6 deletions(-) --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -1055,12 +1055,6 @@ static void advk_pcie_handle_int(struct isr1_mask = advk_readl(pcie, PCIE_ISR1_MASK_REG); isr1_status = isr1_val & ((~isr1_mask) & PCIE_ISR1_ALL_MASK); - if (!isr0_status && !isr1_status) { - advk_writel(pcie, isr0_val, PCIE_ISR0_REG); - advk_writel(pcie, isr1_val, PCIE_ISR1_REG); - return; - } - /* Process MSI interrupts */ if (isr0_status & PCIE_ISR0_MSI_INT_PENDING) advk_pcie_handle_msi(pcie); Patches currently in stable-queue which might be from pali@xxxxxxxxxx are queue-5.4/pci-aardvark-fix-reporting-data-link-layer-link-active.patch queue-5.4/pci-mark-atheros-qca6174-to-avoid-bus-reset.patch queue-5.4/serial-core-fix-initializing-and-restoring-termios-speed.patch queue-5.4/pci-pci-bridge-emul-fix-emulation-of-w1c-bits.patch queue-5.4/pci-aardvark-fix-checking-for-link-up-via-ltssm-state.patch queue-5.4/pci-aardvark-fix-return-value-of-msi-domain-.alloc-method.patch queue-5.4/pci-aardvark-read-all-16-bits-from-pcie_msi_payload_reg.patch queue-5.4/pci-aardvark-do-not-unmask-unused-interrupts.patch queue-5.4/pci-aardvark-do-not-clear-status-bits-of-masked-interrupts.patch