mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-23 23:08:42 +07:00
56752b2175
The handle_irq_perbit function loop every bit in hwirq local variable. handle_irq_perbit(hwirq) { for_everyt_bit_in(hwirq) { handle_domain_irq() ->irq_exit() ->invoke_softirq() ->__do_softirq() ->local_irq_enable() // Here will cause new interrupt. } } When new interrupt coming at local_irq_enable, it will finish another interrupt handler and pull down the interrupt source. But hwirq is the local variable for handle_irq_perbit(), it can't get new interrupt controller pending reg status. So we need update hwirq with pending reg in every loop. Also change write_relax to writel could prevent stw from fast retire. When local_irq is enabled, intc regs is really set-in. Signed-off-by: Guo Ren <ren_guo@c-sky.com> Cc: Lu Baoquan <lu.baoquan@intellif.com> |
||
---|---|---|
.. | ||
alphascale_asm9260-icoll.h | ||
exynos-combiner.c | ||
irq-alpine-msi.c | ||
irq-armada-370-xp.c | ||
irq-aspeed-i2c-ic.c | ||
irq-aspeed-vic.c | ||
irq-ath79-cpu.c | ||
irq-ath79-misc.c | ||
irq-ativic32.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-csky-apb-intc.c | ||
irq-csky-mpintc.c | ||
irq-digicolor.c | ||
irq-dw-apb-ictl.c | ||
irq-eznps.c | ||
irq-ftintc010.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-fsl-mc-msi.c | ||
irq-gic-v3-its-pci-msi.c | ||
irq-gic-v3-its-platform-msi.c | ||
irq-gic-v3-its.c | ||
irq-gic-v3-mbi.c | ||
irq-gic-v3.c | ||
irq-gic-v4.c | ||
irq-gic.c | ||
irq-goldfish-pic.c | ||
irq-hip04.c | ||
irq-i8259.c | ||
irq-imgpdc.c | ||
irq-imx-gpcv2.c | ||
irq-imx-irqsteer.c | ||
irq-ingenic.c | ||
irq-jcore-aic.c | ||
irq-keystone.c | ||
irq-lpc32xx.c | ||
irq-ls-scfg-msi.c | ||
irq-madera.c | ||
irq-mbigen.c | ||
irq-meson-gpio.c | ||
irq-mips-cpu.c | ||
irq-mips-gic.c | ||
irq-mmp.c | ||
irq-mscc-ocelot.c | ||
irq-mtk-cirq.c | ||
irq-mtk-sysirq.c | ||
irq-mvebu-gicp.c | ||
irq-mvebu-icu.c | ||
irq-mvebu-odmi.c | ||
irq-mvebu-pic.c | ||
irq-mvebu-sei.c | ||
irq-mxs.c | ||
irq-nvic.c | ||
irq-omap-intc.c | ||
irq-ompic.c | ||
irq-or1k-pic.c | ||
irq-orion.c | ||
irq-partition-percpu.c | ||
irq-pic32-evic.c | ||
irq-rda-intc.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-sifive-plic.c | ||
irq-sirfsoc.c | ||
irq-sni-exiu.c | ||
irq-st.c | ||
irq-stm32-exti.c | ||
irq-sun4i.c | ||
irq-sunxi-nmi.c | ||
irq-tango.c | ||
irq-tb10x.c | ||
irq-tegra.c | ||
irq-ts4800.c | ||
irq-uniphier-aidet.c | ||
irq-versatile-fpga.c | ||
irq-vf610-mscm-ir.c | ||
irq-vic.c | ||
irq-vt8500.c | ||
irq-xilinx-intc.c | ||
irq-xtensa-mx.c | ||
irq-xtensa-pic.c | ||
irq-zevio.c | ||
irqchip.c | ||
Kconfig | ||
Makefile | ||
qcom-irq-combiner.c | ||
qcom-pdc.c | ||
spear-shirq.c |