mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-24 02:18:54 +00:00
2564970a38
If an IRQ is setup using __setup_irq(), which is used by the
request_irq() family of functions, and we are using an SMP kernel then
the affinity of the IRQ will be set via setup_affinity() immediately
after the IRQ is enabled. This call to gic_set_affinity() will lead to
the interrupt being mapped to a VPE. However there are other ways to use
IRQs which don't cause affinity to be set, for example if it is used to
chain to another IRQ controller with irq_set_chained_handler_and_data().
The irq_set_chained_handler_and_data() code path will enable the IRQ,
but will not trigger a call to gic_set_affinity() and in this case
nothing will map the interrupt to a VPE, meaning that the interrupt is
never received.
Fix this by implementing the activate operation for the GIC device IRQ
domain, using gic_shared_irq_domain_map() to map the interrupt to the
correct pin of cpu 0.
Fixes:
|
||
---|---|---|
.. | ||
alphascale_asm9260-icoll.h | ||
exynos-combiner.c | ||
irq-alpine-msi.c | ||
irq-armada-370-xp.c | ||
irq-aspeed-vic.c | ||
irq-ath79-cpu.c | ||
irq-ath79-misc.c | ||
irq-atmel-aic5.c | ||
irq-atmel-aic-common.c | ||
irq-atmel-aic-common.h | ||
irq-atmel-aic.c | ||
irq-bcm2835.c | ||
irq-bcm2836.c | ||
irq-bcm6345-l1.c | ||
irq-bcm7038-l1.c | ||
irq-bcm7120-l2.c | ||
irq-brcmstb-l2.c | ||
irq-clps711x.c | ||
irq-crossbar.c | ||
irq-digicolor.c | ||
irq-dw-apb-ictl.c | ||
irq-eznps.c | ||
irq-gic-common.c | ||
irq-gic-common.h | ||
irq-gic-pm.c | ||
irq-gic-realview.c | ||
irq-gic-v2m.c | ||
irq-gic-v3-its-pci-msi.c | ||
irq-gic-v3-its-platform-msi.c | ||
irq-gic-v3-its.c | ||
irq-gic-v3.c | ||
irq-gic.c | ||
irq-hip04.c | ||
irq-i8259.c | ||
irq-imgpdc.c | ||
irq-imx-gpcv2.c | ||
irq-ingenic.c | ||
irq-keystone.c | ||
irq-lpc32xx.c | ||
irq-ls-scfg-msi.c | ||
irq-mbigen.c | ||
irq-metag-ext.c | ||
irq-metag.c | ||
irq-mips-cpu.c | ||
irq-mips-gic.c | ||
irq-mmp.c | ||
irq-moxart.c | ||
irq-mtk-sysirq.c | ||
irq-mvebu-odmi.c | ||
irq-mxs.c | ||
irq-nvic.c | ||
irq-omap-intc.c | ||
irq-or1k-pic.c | ||
irq-orion.c | ||
irq-partition-percpu.c | ||
irq-pic32-evic.c | ||
irq-renesas-h8s.c | ||
irq-renesas-h8300h.c | ||
irq-renesas-intc-irqpin.c | ||
irq-renesas-irqc.c | ||
irq-s3c24xx.c | ||
irq-sa11x0.c | ||
irq-sirfsoc.c | ||
irq-st.c | ||
irq-sun4i.c | ||
irq-sunxi-nmi.c | ||
irq-tango.c | ||
irq-tb10x.c | ||
irq-tegra.c | ||
irq-ts4800.c | ||
irq-versatile-fpga.c | ||
irq-vf610-mscm-ir.c | ||
irq-vic.c | ||
irq-vt8500.c | ||
irq-xtensa-mx.c | ||
irq-xtensa-pic.c | ||
irq-zevio.c | ||
irqchip.c | ||
Kconfig | ||
Makefile | ||
spear-shirq.c |