linux/kernel
Linus Torvalds 2e973d4882 Updates for interrupt chip drivers:
- Remove the futile attempts to cleanup resources when the probing of the
     main interrupt chip fails for SiFIVE/PLIC devices. If that probe fails
     the system will stall immediately afterwards in the boot process
     without reaching a state where the error could be diagnosed. The lack
     of resource cleanup led to a frenzy of AI detected/assisted "fixes"
     which just make the code pretend to be correct for no value.
 
     Remove the existing half baked cleanup and immediately panic the
     machine when the probe fails. That's far more useful than letting it
     proceed and stall out a millisecond later with no information about the
     root cause.
 
   - A series of fixes for the ARM GIC-V3 driver addressing a potential
     double free, a bitmask overrun on 32-bit ARM and a OF node leak.
 
   - Automatically set the IRQ_DOMAIN_FLAG_DESTROY_GC when a interrupt
     domain is created that also allocates the generic interrupt chip during
     domain creation. That removes the requirement for manually setting the
     flag in the domain creation info structure when it contains a valid
     entry for allocating the generic interrupt chip. Remove the therefore
     redundant setters of IRQ_DOMAIN_FLAG_DESTROY_GC in the existing
     drivers.
 
   - Add support for Annapurna Labs FIC version 2 and 3 and implement
     affinity control for the demultiplexed interrupts by utilizing the
     recently merged interrupt redirection infrastructure.
 
   - Convert the ACPI device ID structures to named initializers
 
   - Consolidate the IPI related constants for RISC-V interrupt controllers
 
   - Add support for Qualcomm Purwa SoC interrupt chip and consolidate the
     workaround for the previous version in Hamoa SoCs.
 
   - The usual small fixes and improvements all over the place
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmrX0aEQHHRnbHhAa2Vy
 bmVsLm9yZwAKCRCmGPVMDXSYoatNEACU5naAkM1k+hTaPXSRcd/JpizpVrM5jpM5
 tOGe5ml6h9Mda+9uFSwR5rOF5kHXofZh70E97zR7C4jD7JNcuXPqgFg202mKfcjg
 ZWcuYKOR5DaAmiNgpXYPyK9UpXQ9YOPwE7MMpv7sv5yfYDVWFzVEOSb5F294D+gK
 vuQLY9jeysDWNRSuXD9Zo8pBoXJZBCMvTWrJJO4fdh8ZxIWJJv35nRoAgYs8ZlWq
 hF1om+Ei8KbftW9ox/ZJ+nomM6UG+H6iw8+7jZ/mQ9kadRExCNNoFF2NDfH/XFX2
 +o+2HVmXW5KTCSmy28aPLBTZojeAoEGvqI5IXu8bKYR6IfYrzdZIe+9UuabPg0lO
 NWOFj1wGbUD84hoo0gI9f1MsTORdNBqccG132MvDKzOyMYQ8cbOEsk44QTjLC+kT
 A46iM1eFC43g2YWpl9qZRKmq+PomCwMwBmjCKNPzG1a24iUzeDdGSs+Es2tNzlQt
 MVPXGHzgBfXb1thEP/28nBpEnAJ6XyXaXvIvp0GcSVdbTmT3MrkEOb0YmI1QUyot
 FRM9WVpy9X0XNo4yqxKAFGVlmGeR9XKMYgU3bgaZ7CgZMe507MAjTGU44mk+LjKa
 Ndyl7ztYrrcf3GMoe1IIbfKI6bcUZ588d6VPLjH8BKCd2ZqRDfnIPNX+oIpoomd3
 FxacuEXq4Q==
 =ma3a
 -----END PGP SIGNATURE-----

Merge tag 'irq-drivers-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull irq chip driver updates from Thomas Gleixner:
 "Updates for interrupt chip drivers:

   - Remove the futile attempts to cleanup resources when the probing of
     the main interrupt chip fails for SiFIVE/PLIC devices. If that
     probe fails the system will stall immediately afterwards in the
     boot process without reaching a state where the error could be
     diagnosed. The lack of resource cleanup led to a frenzy of AI
     detected/assisted "fixes" which just make the code pretend to be
     correct for no value.

     Remove the existing half baked cleanup and immediately panic the
     machine when the probe fails. That's far more useful than letting
     it proceed and stall out a millisecond later with no information
     about the root cause.

   - A series of fixes for the ARM GIC-V3 driver addressing a potential
     double free, a bitmask overrun on 32-bit ARM and a OF node leak.

   - Automatically set the IRQ_DOMAIN_FLAG_DESTROY_GC when a interrupt
     domain is created that also allocates the generic interrupt chip
     during domain creation. That removes the requirement for manually
     setting the flag in the domain creation info structure when it
     contains a valid entry for allocating the generic interrupt chip.
     Remove the therefore redundant setters of
     IRQ_DOMAIN_FLAG_DESTROY_GC in the existing drivers.

   - Add support for Annapurna Labs FIC version 2 and 3 and implement
     affinity control for the demultiplexed interrupts by utilizing the
     recently merged interrupt redirection infrastructure.

   - Convert the ACPI device ID structures to named initializers

   - Consolidate the IPI related constants for RISC-V interrupt
     controllers

   - Add support for Qualcomm Purwa SoC interrupt chip and consolidate
     the workaround for the previous version in Hamoa SoCs.

   - The usual small fixes and improvements all over the place"

* tag 'irq-drivers-2026-10-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (61 commits)
  irqchip/al-fic: Support per-child affinity via interrupt redirection
  irqchip/al-fic: Add support for FIC v3
  irqchip/al-fic: Support error and fatal outputs and FIC v2
  dt-bindings: interrupt-controller: amazon,al-fic: Add mask selection
  irqchip/al-fic: Switch to shared parent interrupt
  irqchip/al-fic: Keep the device_node instead of a cached name string
  irqchip/al-fic: Use %pOF and raise init log level
  irqchip/al-fic: Use %pe to print init error
  irqchip/al-fic: Fix coding style issues
  irqchip: Use named initializers for acpi_device_id
  irqchip/gic-v5: Fix standalone IRSes OF probe
  dt-bindings: interrupt-controller: gicv5: Relax IRS properties constraints
  irqchip/renesas-rzv2h: Preserve TIEN state in rzv2h_tint_set_type()
  irqchip/loongson-eiointc: Use pa_to_nid() rather than hard-code
  irqchip/riscv-imsic: Expose the fwnode via the global config
  irqchip/meson-gpio: Allow the GPIO interrupts to wake the system
  irqchip/gic-v3: Ensure change to DS is visible
  irqchip/mips-gic: Transfer interrupt mask state across clusters
  irqchip/mips-gic: Fix recursive acquisition of gic_lock in gic_set_affinity()
  irqchip/mips-gic: Fix unbalanced cm_core_lock in for_each_online_cpu_gic()
  ...
2026-10-21 11:16:50 -10:00
..
bpf vfs-7.4-rc1.idmap 2026-10-19 17:57:49 -10:00
cgroup cgroup: Fixes for v7.3-rc6 2026-10-07 02:19:02 +02:00
configs slab: support for compiler-assisted type-based slab cache partitioning 2026-05-14 10:44:09 +02:00
debug kgdb: update outdated references to kgdb_wait() 2026-04-21 16:41:54 +01:00
dma dma-mapping fixes for Linux 7.3 2026-10-10 00:49:55 +02:00
entry Merge __{get,put}_user() removal branch 2026-10-21 07:19:30 -10:00
events Merge __{get,put}_user() removal branch 2026-10-21 07:19:30 -10:00
futex futex: Fix mm reuse handling for FUT_OFF_MMSHARED 2026-10-14 15:11:48 +02:00
gcov Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
irq Updates for interrupt chip drivers: 2026-10-21 11:16:50 -10:00
kcsan kcsan: avoid unintended access checking in NMIs 2026-07-20 18:18:37 +02:00
livepatch livepatch: Fix NULL pointer dereference in klp_find_func() 2026-07-07 12:54:37 +02:00
liveupdate kho: make boot time huge page allocation work nicely with KHO 2026-08-23 09:17:38 -07:00
locking Misc locking fixes: 2026-09-06 10:45:46 -07:00
module module: fix lost error code from codetag_load_module() 2026-09-26 13:55:09 -07:00
power Core features: 2026-10-20 07:55:19 -10:00
printk printk: Postpone kthread startup 2026-10-16 17:07:29 +02:00
rcu Merge branches 'misc.2026.10.06a' and 'torture.2026.10.12a' into HEAD 2026-10-12 16:53:20 -07:00
sched Scheduler updates: 2026-10-20 12:35:35 -10:00
tests userns: rename insert_extent() and sort_idmaps() 2026-09-11 15:00:37 +02:00
time Scheduler updates: 2026-10-20 12:35:35 -10:00
trace bpf: Use get_user() for kprobe_multi symbols and uprobe_multi arrays 2026-10-19 19:23:30 -10:00
unwind Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
.gitignore
acct.c fs: move SB_I_USERNS_VISIBLE to FS_USERNS_MOUNT_RESTRICTED 2026-05-11 23:13:01 +02:00
async.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
audit_fsnotify.c audit: fix recursive locking deadlock in audit_dupe_exe() 2026-05-27 19:15:34 -04:00
audit_tree.c Automated merge of 'audit/dev' into 'stable-7.4' 2026-10-16 09:36:00 -04:00
audit_watch.c audit: Fix filter rule accounting after automatic removal 2026-09-01 17:35:19 -04:00
audit.c audit: use copied skb length in kauditd_send_multicast_skb() 2026-08-31 13:52:41 -04:00
audit.h audit: separate file and process capability storage 2026-09-28 18:10:56 -04:00
auditfilter.c audit: Fix filter rule accounting after automatic removal 2026-09-01 17:35:19 -04:00
auditsc.c lsm/stable-7.4 PR 20261016 2026-10-20 20:04:07 -10:00
backtracetest.c
bounds.c x86/asm: Remove ANNOTATE_DATA_SPECIAL usage 2025-12-03 16:53:19 +01:00
capability.c vfs-7.4-rc1.idmap 2026-10-19 17:57:49 -10:00
cfi.c
compat.c compat: use scoped user access in get_compat_sigevent() 2026-10-19 19:23:18 -10:00
configs.c
context_tracking.c context_tracking: Remove rcu_task_trace_heavyweight_{enter,exit}() 2026-01-01 16:39:46 +08:00
cpu_pm.c syscore: Pass context data to callbacks 2025-11-14 10:01:52 +01:00
cpu.c cpumask: Introduce cpu_preferred_mask 2026-09-28 08:44:41 +02:00
crash_core_test.c
crash_core.c crash: Update stale NR_CPUS_DEFAULT references in elfcorehdr sizing docs 2026-09-02 14:25:16 -07:00
crash_dump_dm_crypt.c crash_dump: release keyring reference at the correct time 2026-07-13 10:04:47 +03:00
crash_reserve.c kernel/crash: remove inclusion of crypto/sha1.h 2026-03-27 21:19:46 -07:00
cred.c cred: prevent slab cache merging for cred_jar 2026-09-09 17:48:37 -04:00
delayacct.c sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL 2026-08-05 15:28:23 +02:00
dma.c
elfcorehdr.c
exec_domain.c
exec_state.c exec_state: relocate dumpable information 2026-05-26 11:02:01 +02:00
exit.c vfs-7.4-rc1.sync_close 2026-10-19 21:03:21 -10:00
exit.h
extable.c
fail_function.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
fork.c vfs-7.4-rc1.sync_close 2026-10-19 21:03:21 -10:00
freezer.c freezer: Clarify that only cgroup1 freezer uses PM freezer 2025-10-30 20:10:27 +01:00
gen_kheaders.sh
groups.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
hung_task.c hung_task: explicitly report I/O wait state in log output 2026-03-27 21:19:40 -07:00
iomem.c
irq_work.c irq_work: Flush lazy work CPU down on PREEMPT_RT 2026-10-01 14:00:35 +02:00
jump_label.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
kallsyms_internal.h kallsyms: Get rid of kallsyms relative base 2026-01-22 15:58:22 -07:00
kallsyms_selftest.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
kallsyms_selftest.h
kallsyms.c mm.git review status for linus..mm-nonmm-stable 2026-02-12 12:13:01 -08:00
kcmp.c fs: add real_fs to track task's actual fs_struct 2026-06-29 10:43:45 +02:00
Kconfig.freezer
Kconfig.hz
Kconfig.kexec crash: Update stale NR_CPUS_DEFAULT references in elfcorehdr sizing docs 2026-09-02 14:25:16 -07:00
Kconfig.locks locking/qspinlock: Add contended_release tracepoint 2026-08-07 17:58:10 +02:00
Kconfig.preempt cpumask: Introduce cpu_preferred_mask 2026-09-28 08:44:41 +02:00
kcov.c mm.git review status for master..mm-nonmm-stable 2026-08-23 08:07:11 -07:00
kexec_core.c liveupdate: skip serialization for context-preserving kexec 2026-06-01 09:19:38 +03:00
kexec_elf.c
kexec_file.c kexec_file: skip checksum verification when safe 2026-07-01 13:01:08 +03:00
kexec_internal.h
kexec.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
kheaders.c
kprobes.c kprobes: Skip disarmed probes when checking optkprobe overlap 2026-10-02 15:51:57 +09:00
kstack_erase.c sysctl: remove __user qualifier from stack_erasing_sysctl buffer argument 2025-11-27 15:44:53 +01:00
ksyms_common.c
ksysfs.c kernel: ksysfs: initialize kernel_kobj earlier 2026-04-03 19:39:52 +02:00
kthread.c vfs-7.4-rc1.coredump 2026-10-19 17:21:24 -10:00
latencytop.c
Makefile Kbuild / Kconfig updates for 7.4 2026-10-21 10:45:44 -10:00
module_signature.c module: Give 'enum pkey_id_type' a more specific name 2026-03-24 21:42:37 +00:00
notifier.c
nscommon.c lsm: add LSM blob and hooks for namespaces 2026-08-31 16:14:10 -04:00
nsproxy.c lsm/stable-7.4 PR 20261016 2026-10-20 20:04:07 -10:00
nstree.c nstree: check listing permission before taking a namespace reference 2026-09-09 10:03:15 +02:00
padata.c padata: Put CPU offline callback in ONLINE section to allow failure 2026-03-22 11:17:59 +09:00
panic.c bug/kunit: Core support for suppressing warning backtraces 2026-05-14 10:50:00 -06:00
params.c mm.git review status for master..mm-nonmm-stable 2026-08-23 08:07:11 -07:00
pid_namespace.c kernel-7.4-rc1.signal 2026-10-19 16:22:15 -10:00
pid_sysctl.h
pid.c pid: use READ_ONCE() in pid_alive() 2026-10-12 11:13:01 +02:00
profile.c
ptrace.c Merge __{get,put}_user() removal branch 2026-10-21 07:19:30 -10:00
range.c
reboot.c Merge branch 'for-7.3-hotfix' into for-linus 2026-10-16 17:38:25 +02:00
regset.c
relay.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
resource_kunit.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
resource.c resource: downgrade "resource sanity check" warning to debug level 2026-08-03 21:10:05 -07:00
rseq.c rseq: Reenable performance optimizations conditionally 2026-05-06 17:40:27 +02:00
scftorture.c smp_call_function() torture-test updates: 2026-08-23 19:28:04 -07:00
scs.c scs: fix a wrong parameter in __scs_magic 2025-11-12 10:00:13 -08:00
seccomp.c seccomp, treewide: Rename and convert __secure_computing() to return boolean 2026-07-12 12:38:02 +02:00
signal.c Merge __{get,put}_user() removal branch 2026-10-21 07:19:30 -10:00
smp.c Report CSD-lock stall recovery time 2026-10-21 11:03:28 -10:00
smpboot.c smpboot: Don't park the thread if work is pending 2026-10-01 14:00:36 +02:00
smpboot.h
softirq.c softirq: Preserve interrupt context on return from interrupt 2026-10-15 10:38:13 +02:00
stacktrace.c
static_call_inline.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
static_call.c
stop_machine.c stop_machine: Make stop_one_cpu_nowait() return void 2026-07-31 12:35:26 +02:00
sys_ni.c time: Respect COMPAT_32BIT_TIME for old time type functions 2026-07-07 23:52:53 +02:00
sys.c prctl: fix PR_SET_MM_AUXV losing the forced AT_NULL terminator 2026-08-19 19:55:05 -07:00
sysctl-test.c
sysctl.c sysctl: Negate before converting in the int read path 2026-09-29 09:25:14 +02:00
task_work.c
taskstats.c taskstats: fold the two cpumask handlers into one 2026-08-13 15:42:05 -07:00
torture.c torture: Don't leak shuffle_tmp_mask when shuffler kthread fails to start 2026-08-14 14:59:21 -07:00
tracepoint.c tracepoint: balance regfunc() on func_add() failure in tracepoint_add_func() 2026-04-14 05:17:02 -04:00
tsacct.c tsacct: skip all kernel threads 2026-01-26 19:07:13 -08:00
ucount.c binfmt_misc: correctly account pre-opened interpreters 2026-08-03 23:36:18 +02:00
uid16.c
uid16.h
umh.c fs: add umh argument to struct kernel_clone_args 2026-06-29 10:54:41 +02:00
up.c smp: Refactor remote CPU selection in smp_call_function_any() 2026-07-16 09:24:55 +02:00
user_namespace.c vfs-7.4-rc1.idmap 2026-10-19 17:57:49 -10:00
user-return-notifier.c
user.c binfmt_misc: use RCU for the handler lookup 2026-08-03 10:08:36 +02:00
utsname_sysctl.c sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL 2026-08-05 15:28:23 +02:00
utsname.c uts: drop BUG_ON() in copy_utsname() 2026-09-04 12:46:45 +02:00
vhost_task.c vhost_task_create: kill unnecessary .exit_signal initialization 2026-06-10 02:17:00 -04:00
vmcore_info.c mm.git review status for linus..mm-nonmm-stable 2026-04-16 20:11:56 -07:00
watch_queue.c watch_queue: Fix note pool publication race in watch_queue_set_size() 2026-10-14 22:08:02 +02:00
watchdog_buddy.c watchdog/hardlockup: improve buddy system detection timeliness 2026-03-27 21:19:47 -07:00
watchdog_perf.c watchdog/hardlockup: simplify perf event probe and remove per-cpu dependency 2026-02-08 00:13:35 -08:00
watchdog.c watchdog/softlockup: fix softlockup typos 2026-08-03 21:10:06 -07:00
workqueue_internal.h workqueue: Show in-flight work item duration in stall diagnostics 2026-03-05 07:27:48 -10:00
workqueue.c workqueue: Fix NULL current_pwq deref in mem-reclaim helper 2026-10-07 07:57:17 -10:00