android_kernel_motorola_sm6375/kernel/irq
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Marc Zyngier 985d9fa06b irqdomain: Fix domain registration race
[ Upstream commit 8932c32c3053accd50702b36e944ac2016cd103c ]

Hierarchical domains created using irq_domain_create_hierarchy() are
currently added to the domain list before having been fully initialised.

This specifically means that a racing allocation request might fail to
allocate irq data for the inner domains of a hierarchy in case the
parent domain pointer has not yet been set up.

Note that this is not really any issue for irqchip drivers that are
registered early (e.g. via IRQCHIP_DECLARE() or IRQCHIP_ACPI_DECLARE())
but could potentially cause trouble with drivers that are registered
later (e.g. modular drivers using IRQCHIP_PLATFORM_DRIVER_BEGIN(),
gpiochip drivers, etc.).

Fixes: afb7da83b9 ("irqdomain: Introduce helper function irq_domain_add_hierarchy()")
Cc: stable@vger.kernel.org      # 3.19
Signed-off-by: Marc Zyngier <maz@kernel.org>
[ johan: add commit message ]
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230213104302.17307-8-johan+linaro@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-03-17 08:32:49 +01:00
..
affinity.c genirq/affinity: Consider that CPUs on nodes can be unbalanced 2022-04-20 09:19:39 +02:00
autoprobe.c
chip.c genirq: Don't return error on missing optional irq_request_resources() 2022-08-25 11:17:29 +02:00
cpuhotplug.c
debug.h
debugfs.c
devres.c
dummychip.c
generic-chip.c
handle.c random: remove unused irq_flags argument from add_interrupt_randomness() 2022-06-22 14:11:06 +02:00
internals.h genirq/irqdesc: Don't try to remove non-existing sysfs files 2023-01-18 11:40:55 +01:00
ipi.c
irq_sim.c
irqdesc.c genirq/irqdesc: Don't try to remove non-existing sysfs files 2023-01-18 11:40:55 +01:00
irqdomain.c irqdomain: Fix domain registration race 2023-03-17 08:32:49 +01:00
Kconfig
Makefile
manage.c genirq: Synchronize interrupt thread startup 2022-05-12 12:23:41 +02:00
matrix.c genirq/matrix: Prevent allocation counter corruption 2021-05-11 14:04:05 +02:00
migration.c
msi.c genirq/msi: Ensure deactivation on teardown 2021-08-18 08:57:02 +02:00
pm.c
proc.c
resend.c treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD() 2023-03-11 16:43:42 +01:00
settings.h
spurious.c
timings.c genirq/timings: Fix error return code in irq_timings_test_irqs() 2021-09-15 09:47:29 +02:00