Re: [PATCH] PCI: microchip: add missing chained_irq enter/exit calls

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

 



"PCI: microchip: Add missing chained_irq_enter()/exit() calls"

Always capitalize the first word in the commit subject sentence
and add brackets to functions calls.

On Wed, May 11, 2022 at 10:55:05AM +0100, Conor Dooley wrote:
> Bjorn spotted that two of the chained irq handlers were missing their

It is clear in the Link/reported-by that Bjorn spotted it, it is a nit
but I'd prefer the commit log to just explain what you are fixing
rather than telling the background story that is already there in
the Link: provided.

I can make these changes for you, just let me know.

Thanks,
Lorenzo

> chained_irq_enter()/chained_irq_exit() calls, so add them in to avoid
> potentially lost interrupts.
> 
> Reported by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
> Link: https://lore.kernel.org/linux-pci/87h76b8nxc.wl-maz@xxxxxxxxxx
> Signed-off-by: Conor Dooley <conor.dooley@xxxxxxxxxxxxx>
> ---
>  drivers/pci/controller/pcie-microchip-host.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/pci/controller/pcie-microchip-host.c b/drivers/pci/controller/pcie-microchip-host.c
> index 29d8e81e4181..8175abed0f05 100644
> --- a/drivers/pci/controller/pcie-microchip-host.c
> +++ b/drivers/pci/controller/pcie-microchip-host.c
> @@ -406,6 +406,7 @@ static void mc_pcie_enable_msi(struct mc_pcie *port, void __iomem *base)
>  static void mc_handle_msi(struct irq_desc *desc)
>  {
>  	struct mc_pcie *port = irq_desc_get_handler_data(desc);
> +	struct irq_chip *chip = irq_desc_get_chip(desc);
>  	struct device *dev = port->dev;
>  	struct mc_msi *msi = &port->msi;
>  	void __iomem *bridge_base_addr =
> @@ -414,6 +415,8 @@ static void mc_handle_msi(struct irq_desc *desc)
>  	u32 bit;
>  	int ret;
>  
> +	chained_irq_enter(chip, desc);
> +
>  	status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL);
>  	if (status & PM_MSI_INT_MSI_MASK) {
>  		status = readl_relaxed(bridge_base_addr + ISTATUS_MSI);
> @@ -424,6 +427,8 @@ static void mc_handle_msi(struct irq_desc *desc)
>  						    bit);
>  		}
>  	}
> +
> +	chained_irq_exit(chip, desc);
>  }
>  
>  static void mc_msi_bottom_irq_ack(struct irq_data *data)
> @@ -563,6 +568,7 @@ static int mc_allocate_msi_domains(struct mc_pcie *port)
>  static void mc_handle_intx(struct irq_desc *desc)
>  {
>  	struct mc_pcie *port = irq_desc_get_handler_data(desc);
> +	struct irq_chip *chip = irq_desc_get_chip(desc);
>  	struct device *dev = port->dev;
>  	void __iomem *bridge_base_addr =
>  		port->axi_base_addr + MC_PCIE_BRIDGE_ADDR;
> @@ -570,6 +576,8 @@ static void mc_handle_intx(struct irq_desc *desc)
>  	u32 bit;
>  	int ret;
>  
> +	chained_irq_enter(chip, desc);
> +
>  	status = readl_relaxed(bridge_base_addr + ISTATUS_LOCAL);
>  	if (status & PM_MSI_INT_INTX_MASK) {
>  		status &= PM_MSI_INT_INTX_MASK;
> @@ -581,6 +589,8 @@ static void mc_handle_intx(struct irq_desc *desc)
>  						    bit);
>  		}
>  	}
> +
> +	chained_irq_exit(chip, desc);
>  }
>  
>  static void mc_ack_intx_irq(struct irq_data *data)
> -- 
> 2.36.1
> 



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux