linux/kernel/irq
Pan Chuang 55b48e23f5 genirq/devres: Add error handling in devm_request_*_irq()
devm_request_threaded_irq() and devm_request_any_context_irq() currently
don't print any error message when interrupt registration fails.

This forces each driver to implement redundant error logging - over 2,000
lines of error messages exist across drivers. Additionally, when
upper-layer functions propagate these errors without logging, critical
debugging information is lost.

Add devm_request_result() helper to unify error reporting via dev_err_probe(),

Use it in devm_request_threaded_irq() and devm_request_any_context_irq()
printing device name, IRQ number, handler functions, and error code on failure
automatically.

Co-developed-by: Yangtao Li <frank.li@vivo.com>
Signed-off-by: Yangtao Li <frank.li@vivo.com>
Signed-off-by: Pan Chuang <panchuang@vivo.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250805092922.135500-2-panchuang@vivo.com
2025-08-24 13:00:45 +02:00
..
Kconfig genirq: Remove GENERIC_IRQ_LEGACY 2025-08-23 19:46:04 +02:00
Makefile genirq: Add kunit tests for depth counts 2025-06-13 15:24:44 +02:00
affinity.c lib/group_cpus: Let group_cpu_evenly() return the number of initialized masks 2025-07-01 10:24:11 -06:00
autoprobe.c genirq/autoprobe: Switch to lock guards 2025-05-07 09:08:11 +02:00
chip.c genirq: Add irq_chip_(startup/shutdown)_parent() 2025-08-23 21:20:25 +02:00
cpuhotplug.c genirq/cpuhotplug: Restore affinity even for suspended IRQ 2025-06-13 15:13:35 +02:00
debug.h
debugfs.c genirq: Bump the size of the local variable for sprintf() 2025-05-15 16:28:09 +02:00
devres.c genirq/devres: Add error handling in devm_request_*_irq() 2025-08-24 13:00:45 +02:00
dummychip.c
generic-chip.c genirq/generic-chip: Fix incorrect lock guard conversions 2025-04-08 22:49:02 +02:00
handle.c
internals.h genirq: Split up irq_pm_check_wakeup() 2025-07-22 14:30:42 +02:00
ipi-mux.c
ipi.c
irq_sim.c genirq/irq_sim: Initialize work context pointers properly 2025-06-13 15:36:35 +02:00
irq_test.c genirq/test: Resolve irq lock inversion warnings 2025-08-06 10:29:48 +02:00
irqdesc.c genirq: Remove GENERIC_IRQ_LEGACY 2025-08-23 19:46:04 +02:00
irqdomain.c Networking changes for 6.17. 2025-07-30 08:58:55 -07:00
kexec.c genirq/kexec: Prevent redundant IRQ masking by checking state before shutdown 2024-12-11 20:32:34 +01:00
manage.c genirq/manage: Use the correct lock guard in irq_set_irq_wake() 2025-05-14 12:05:58 +02:00
matrix.c genirq/matrix: Dynamic bitmap allocation 2024-02-23 10:18:44 +01:00
migration.c genirq/migration: Use irqd_get_parent_data() in irq_force_complete_move() 2025-04-04 17:08:36 +02:00
msi.c irqdomain: Add device pointer to irq_domain_info and msi_domain_info 2025-07-03 15:49:24 +02:00
pm.c genirq: Split up irq_pm_check_wakeup() 2025-07-22 14:30:42 +02:00
proc.c genirq: Consistently use '%u' format specifier for unsigned int variables 2025-05-13 09:43:32 +02:00
resend.c genirq/resend: Switch to lock guards 2025-05-07 09:08:11 +02:00
settings.h genirq: Remove IRQ_MOVE_PCNTXT and related code 2025-01-15 21:38:53 +01:00
spurious.c genirq: Move irq_wait_for_poll() to call site 2025-07-22 14:30:42 +02:00
timings.c genirq/timings: Add kernel-doc for a function parameter 2025-01-15 21:38:53 +01:00