lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 143/917] PCI: aardvark: Do not clear status bits of masked interrupts
    Date
    From: Pali Rohár <pali@kernel.org>

    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@kernel.org
    Fixes: 8c39d710363c ("PCI: aardvark: Add Aardvark PCI host controller driver")
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: Marek Behún <kabel@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    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
    @@ -1286,12 +1286,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);

    \
     
     \ /
      Last update: 2021-11-16 00:40    [W:4.019 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site