linux/drivers
Valentin Schneider 6d86d53d07 BACKPORT: FROMGIT: irqchip/gic-v2, v3: Implement irq_chip->irq_retrigger()
While digging around IRQCHIP_EOI_IF_HANDLED and irq/resend.c, it has come
to my attention that the IRQ resend situation seems a bit precarious for
the GIC(s).

When marking an IRQ with IRQS_PENDING, handle_fasteoi_irq() will bail out
and issue an irq_eoi(). Should the IRQ in question be re-enabled,
check_irq_resend() will trigger a SW resend, which will go through the flow
handler again and issue *another* irq_eoi() on the *same* IRQ
activation. This is something the GIC spec clearly describes as a bad idea:
any EOI must match a previous ACK.

Implement irq_chip.irq_retrigger() for the GIC chips by setting the GIC
pending bit of the relevant IRQ. After being called by check_irq_resend(),
this will eventually trigger a *new* interrupt which we will handle as usual.

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20200730170321.31228-2-valentin.schneider@arm.com

Bug: 140053385
(cherry picked from commit 17f644e949
 https://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git irq/gic-retrigger)
(resolved trivial merge conflict in drivers/irqchip/irq-gic.c)
Change-Id: I1c5e81c7cf33155e81ba31615e5eaf3f578350c2
Signed-off-by: Eric Biggers <ebiggers@google.com>
2020-10-01 11:07:45 -07:00
..
accessibility Char/Misc driver fixes for 5.9-rc3 2020-08-26 10:50:50 -07:00
acpi ACPI: processor: Fix build for ARCH_APICTIMER_STOPS_ON_C3 unset 2020-09-23 13:50:12 +02:00
amba
android ANDROID: gic: Add vendor hook for gic-v3 resume 2020-09-20 22:10:33 +00:00
ata libata-5.9-2020-09-04 2020-09-04 13:19:19 -07:00
atm atm: eni: fix the missed pci_disable_device() for eni_init_one() 2020-09-04 21:42:57 -07:00
auxdisplay A trivial patch for auxdisplay: 2020-09-05 14:22:46 -07:00
base Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
bcma bcma: gpio: Use irqchip template 2020-08-02 18:26:51 +03:00
block Linux 5.9-rc5 2020-09-14 09:49:34 +02:00
bluetooth Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next 2020-07-31 15:11:52 -07:00
bus treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
cdrom
char Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-08-30 15:53:44 -07:00
clk Linux 5.9-rc6 2020-09-21 12:13:45 +02:00
clocksource A set of clocksource/clockevents updates: 2020-09-27 12:11:35 -07:00
connector
counter counter: microchip-tcb-capture: check the correct variable 2020-08-22 11:38:42 +01:00
cpufreq Linux 5.9-rc4 2020-09-07 09:24:58 +02:00
cpuidle Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
crypto Merge 5.9-rc3 into android-mainline 2020-08-31 19:51:25 +02:00
dax dax: Fix stack overflow when mounting fsdax pmem device 2020-09-20 08:57:36 -07:00
dca
devfreq PM / devfreq: tegra30: Disable clock on error in probe 2020-09-23 13:35:58 +09:00
dio
dma dmaengine fixes for v5.9-rc4 2020-09-04 12:12:39 -07:00
dma-buf Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
edac EDAC/ghes: Check whether the driver is on the safe list correctly 2020-09-15 09:42:15 +02:00
eisa
extcon
firewire treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
firmware Linux 5.9-rc6 2020-09-21 12:13:45 +02:00
fpga Linux 5.8-rc7 2020-07-27 11:49:37 +02:00
fsi
gnss ANDROID: fix up Android-specific Kconfig ---help--- strings 2020-08-17 09:13:01 +02:00
gpio treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
gpu Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
greybus greybus: Use fallthrough pseudo-keyword 2020-07-29 16:58:08 +02:00
hid Linux 5.9-rc4 2020-09-07 09:24:58 +02:00
hsi treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
hv hyperv-fixes for 5.9-rc6 2020-09-15 16:20:43 -07:00
hwmon hwmon fixes for v5.9-rc3 2020-08-29 12:37:00 -07:00
hwspinlock
hwtracing Merge 5.9-rc3 into android-mainline 2020-08-31 19:51:25 +02:00
i2c i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK 2020-09-18 23:11:44 +02:00
i3c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ide treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
idle cpuidle: Make CPUIDLE_FLAG_TLB_FLUSHED generic 2020-08-26 12:41:53 +02:00
iio Staging / IIO driver fixes for 5.9-rc5 2020-09-13 09:15:20 -07:00
infiniband RDMA/core: Fix ordering of CQ pool destruction 2020-09-14 15:20:18 -03:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-09-20 10:40:43 -07:00
interconnect interconnect: qcom: Fix small BW votes being truncated to zero 2020-09-04 00:07:12 +03:00
iommu Linux 5.9-rc6 2020-09-21 12:13:45 +02:00
ipack
irqchip BACKPORT: FROMGIT: irqchip/gic-v2, v3: Implement irq_chip->irq_retrigger() 2020-10-01 11:07:45 -07:00
isdn treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
leds LEDs changes for 5.9-rc1. 2020-08-05 19:24:27 -07:00
lightnvm treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
macintosh treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
mailbox iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
mcb
md Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
media Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
memory treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
memstick treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
message treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
mfd - Bug Fixes 2020-08-28 10:15:33 -07:00
misc Linux 5.9-rc5 2020-09-14 09:49:34 +02:00
mmc Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
most drivers: most: add USB adapter driver 2020-07-31 14:38:12 +02:00
mtd Revert "mtd: spi-nor: Add capability to disable flash quad mode" 2020-09-14 20:58:27 +05:30
mux treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
net Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-03 18:50:48 -07:00
ntb treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
nubus
nvdimm libnvdimm: KASAN: global-out-of-bounds Read in internal_create_group 2020-08-17 14:47:38 -06:00
nvme block-5.9-2020-09-25 2020-09-26 11:07:36 -07:00
nvmem nvmem: qcom-spmi-sdam: Enable multiple devices 2020-07-29 17:12:09 +02:00
of Linux 5.9-rc2 2020-08-24 10:01:23 +02:00
opp Merge branch 'opp/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm 2020-09-01 19:44:20 +02:00
oprofile
parisc Merge branch 'parisc-5.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux 2020-08-12 12:41:15 -07:00
parport treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pci treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pcmcia treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
perf treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
phy phy: fixes for 5.9 2020-09-04 12:41:55 +02:00
pinctrl ANDROID: pinctrl: qcom: Kconfig: Make new PINCTRL_SM8250 depend on QCOM_SCM || !QCOM_SCM 2020-09-12 16:25:20 +00:00
platform treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
pnp
power ANDROID: power_supply: Add POWER_SUPPLY_CHARGE_TYPE_TAPER 2020-09-29 18:31:18 +00:00
powercap powercap: RAPL: Add support for Lakefield 2020-09-16 14:16:04 +02:00
pps
ps3 treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
ptp ptp: ptp_clockmatrix: use i2c_master_send for i2c write 2020-08-19 16:23:22 -07:00
pwm Merge 4b6c093e21 ("Merge tag 'block-5.9-2020-08-14' of git://git.kernel.dk/linux-block") into android-mainline 2020-08-17 09:19:35 +02:00
rapidio rapidio: Replace 'select' DMAENGINES 'with depends on' 2020-09-05 19:52:54 +03:00
ras
regulator regulator: Fix for v5.9 2020-09-25 15:16:01 -07:00
remoteproc treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
reset treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
rpmsg ANDROID: rpmsg: core: Add signal API support 2020-09-29 23:20:55 +00:00
rtc treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
s390 s390 fixes for 5.9-rc7 2020-09-26 11:01:18 -07:00
sbus
scsi Merge a1bffa4874 ("Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi") into 'android-mainline' 2020-09-27 13:56:43 +02:00
sfi
sh iomap: constify ioreadX() iomem argument (as in generic implementation) 2020-08-14 19:56:57 -07:00
siox
slimbus
soc Merge 5.9-rc3 into android-mainline 2020-08-31 19:51:25 +02:00
soundwire soundwire: fix double free of dangling pointer 2020-09-03 14:10:19 +05:30
spi spi: Fixes for v5.9 2020-09-25 15:21:54 -07:00
spmi
ssb treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
staging Linux 5.9-rc5 2020-09-14 09:49:34 +02:00
target SCSI fixes on 20200908 2020-09-08 11:42:58 -07:00
tc
tee
thermal - Fix bogus thermal shutdowns for omap4430 where bogus values 2020-09-04 12:49:03 -07:00
thunderbolt thunderbolt: Fix for v5.9-rc6 2020-09-15 13:52:14 +02:00
tty Linux 5.9-rc6 2020-09-21 12:13:45 +02:00
uio
usb ANDROID: usb: typec: tcpm: Bring back tcpm_update_sink_capabilities 2020-09-30 14:32:29 +00:00
vdpa vdpa/mlx5: Avoid warnings about shifts on 32-bit platforms 2020-08-26 08:13:59 -04:00
vfio treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
vhost Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-09-03 18:50:48 -07:00
video TTY/Serial/fbcon fixes for 5.9-rc6 2020-09-20 10:46:26 -07:00
virt
virtio Merge 4b6c093e21 ("Merge tag 'block-5.9-2020-08-14' of git://git.kernel.dk/linux-block") into android-mainline 2020-08-17 09:19:35 +02:00
visorbus
vlynq
vme
w1
watchdog treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
xen xen: branch for v5.9-rc4 2020-09-06 09:59:27 -07:00
zorro
Kconfig
Makefile