diff options
author | Meenakshi Aggarwal <meenakshi.aggarwal@freescale.com> | 2015-02-20 06:51:31 (GMT) |
---|---|---|
committer | Honghua Yin <Hong-Hua.Yin@freescale.com> | 2015-03-16 09:51:07 (GMT) |
commit | 838bc542d9a8b00ce3c5f84d09c8e7a8f3d60da7 (patch) | |
tree | 62f8cf1e333acf77aa2150d77dcb5a36a56fbc9a | |
parent | 978464fa78fef73e7c225e3a316662b6bfd1c261 (diff) | |
download | linux-fsl-qoriq-838bc542d9a8b00ce3c5f84d09c8e7a8f3d60da7.tar.xz |
pci_layerscape : Enable support of RT kernel in PCI-MSI interrupt handler
generic_handle_irq() should always be called in interrupt disabled context,
this patch ensures that interrupts are disabled while calling generic_handle_irq().
It call local_irq_disable() before calling generic_handle_irq() and local_irq_enable() on exit.
In case of non-rt kernel, ls_pcie_msi_irq_handler is called in interrupt disabled context,
so no need to explicitly disabling interrupt while calling generic_handle_irq().
Signed-off-by: Meenakshi Aggarwal <meenakshi.aggarwal@freescale.com>
Change-Id: I13d83423ea45c1ce5021474c04640ac7118664af
Reviewed-on: http://git.am.freescale.net:8181/31478
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Priyanka Jain <Priyanka.Jain@freescale.com>
Reviewed-by: Honghua Yin <Hong-Hua.Yin@freescale.com>
-rw-r--r-- | drivers/pci/host/pci-layerscape.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/host/pci-layerscape.c b/drivers/pci/host/pci-layerscape.c index 04ba519..e3cceb6 100644 --- a/drivers/pci/host/pci-layerscape.c +++ b/drivers/pci/host/pci-layerscape.c @@ -101,8 +101,13 @@ static irqreturn_t ls_pcie_msi_irq_handler(int irq, void *data) dev_err(pcie->dev, "unexpected MSI\n"); return IRQ_NONE; } - +#if defined(CONFIG_PREEMPT_RT_FULL) || defined(CONFIG_PREEMPT_RTB) + local_irq_disable(); +#endif generic_handle_irq(msi_irq); +#if defined(CONFIG_PREEMPT_RT_FULL) || defined(CONFIG_PREEMPT_RTB) + local_irq_enable(); +#endif return IRQ_HANDLED; } |