linux_dsm_epyc7002/kernel/irq
Marc Zyngier 4f8413a3a7 genirq: Track whether the trigger type has been set
When requesting a shared interrupt, we assume that the firmware
support code (DT or ACPI) has called irqd_set_trigger_type
already, so that we can retrieve it and check that the requester
is being reasonnable.

Unfortunately, we still have non-DT, non-ACPI systems around,
and these guys won't call irqd_set_trigger_type before requesting
the interrupt. The consequence is that we fail the request that
would have worked before.

We can either chase all these use cases (boring), or address it
in core code (easier). Let's have a per-irq_desc flag that
indicates whether irqd_set_trigger_type has been called, and
let's just check it when checking for a shared interrupt.
If it hasn't been set, just take whatever the interrupt
requester asks.

Fixes: 382bd4de61 ("genirq: Use irqd_get_trigger_type to compare the trigger type for shared IRQs")
Cc: stable@vger.kernel.org
Reported-and-tested-by: Petr Cvek <petrcvekcz@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2017-11-10 09:49:48 +00:00
..
affinity.c pci-v4.13-changes 2017-07-08 15:51:57 -07:00
autoprobe.c genirq: Separate activation and startup 2017-09-25 20:38:24 +02:00
chip.c genirq/irqdomain: Propagate early activation 2017-09-25 20:38:25 +02:00
cpuhotplug.c genirq/cpuhotplug: Revert "Set force affinity flag on hotplug migration" 2017-07-27 15:40:02 +02:00
debug.h irq: hide debug macros so they don't collide with others. 2012-04-23 12:30:03 -04:00
debugfs.c irqdomain/debugfs: Provide domain specific debug callback 2017-09-25 20:38:23 +02:00
devres.c irq/generic-chip: Provide devm_irq_setup_generic_chip() 2017-06-21 15:53:11 +02:00
dummychip.c Merge branch 'linus' into irq/core 2015-06-05 22:25:01 +02:00
generic-chip.c irq/generic-chip: Don't replace domain's name 2017-09-28 12:18:59 +02:00
handle.c There has been a fair amount of activity in the docs tree this time 2017-07-03 21:13:25 -07:00
internals.h genirq/irqdomain: Propagate early activation 2017-09-25 20:38:25 +02:00
ipi.c genirq/ipi: Fixup checks against nr_cpu_ids 2017-08-20 10:49:05 +02:00
irq_sim.c genirq/irq_sim: Add a devres variant of irq_sim_init() 2017-08-16 16:40:02 +02:00
irqdesc.c genirq: Set managed shut down flag at init 2017-09-25 20:38:23 +02:00
irqdomain.c irqdomain: Add __rcu annotations to radix tree slot 2017-10-19 10:30:15 +01:00
Kconfig genirq: Implement bitmap matrix allocator 2017-09-25 20:38:26 +02:00
Makefile genirq: Implement bitmap matrix allocator 2017-09-25 20:38:26 +02:00
manage.c genirq: Track whether the trigger type has been set 2017-11-10 09:49:48 +00:00
matrix.c genirq/matrix: Add tracepoints 2017-09-25 20:38:26 +02:00
migration.c genirq: Provide irq_fixup_move_pending() 2017-06-22 18:21:13 +02:00
msi.c genirq/irqdomain: Add force reactivation flag to irq domains 2017-09-25 20:38:25 +02:00
pm.c genirq/PM: Properly pretend disabled state when force resuming interrupts 2017-07-17 22:32:20 +02:00
proc.c genirq/proc: Avoid uninitalized variable warning 2017-08-25 22:40:26 +02:00
resend.c genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
settings.h genirq: Add flag to force mask in disable_irq[_nosync]() 2015-10-11 11:33:42 +02:00
spurious.c genirq: Clarify logic calculating bogus irqreturn_t values 2017-02-16 15:32:19 +01:00
timings.c genirq/timings: Add infrastructure for estimating the next interrupt arrival time 2017-06-24 11:44:39 +02:00