Skip to content
OpenAdvisories
Unscored CVE-2025-21684 EUVD-2025-2633GHSA-m4w5-f9xf-8fgr

gpio: xilinx: Convert gpio_lock to raw spinlock

Published Feb 9, 2025 · Updated May 11, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: kernel Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.15 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.15 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-6.8 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.15 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.15 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-6.8 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-5.15 Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-intel-iotg Package: linux-intel-iotg-5.15 Package: linux-kvm Package: linux-lowlatency Package: linux-lowlatency-hwe-5.15 Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-nvidia-tegra-5.15 Package: linux-nvidia-tegra-igx Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.15 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.15 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Package: linux-xilinx-zynqmp Platform: Linux Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

In the Linux kernel, the following vulnerability has been resolved:

gpio: xilinx: Convert gpio_lock to raw spinlock

irq_chip functions may be called in raw spinlock context. Therefore, we
must also use a raw spinlock for our own internal locking.

This fixes the following lockdep splat:

[ 5.349336] =============================
[ 5.353349] [ BUG: Invalid wait context ]
[ 5.357361] 6.13.0-rc5+ #69 Tainted: G W
[ 5.363031] -----------------------------
[ 5.367045] kworker/u17:1/44 is trying to lock:
[ 5.371587] ffffff88018b02c0 (&chip->gpio_lock){....}-{3:3}, at: xgpio_irq_unmask (drivers/gpio/gpio-xilinx.c:433 (discriminator 8))
[ 5.380079] other info that might help us debug this:
[ 5.385138] context-{5:5}
[ 5.387762] 5 locks held by kworker/u17:1/44:
[ 5.392123] #0: ffffff8800014958 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:3204)
[ 5.402260] #1: ffffffc082fcbdd8 (deferred_probe_work){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:3205)
[ 5.411528] #2: ffffff880172c900 (&dev->mutex){....}-{4:4}, at: __device_attach (drivers/base/dd.c:1006)
[ 5.419929] #3: ffffff88039c8268 (request_class#2){+.+.}-{4:4}, at: __setup_irq (kernel/irq/internals.h:156 kernel/irq/manage.c:1596)
[ 5.428331] #4: ffffff88039c80c8 (lock_class#2){....}-{2:2}, at: __setup_irq (kernel/irq/manage.c:1614)
[ 5.436472] stack backtrace:
[ 5.439359] CPU: 2 UID: 0 PID: 44 Comm: kworker/u17:1 Tainted: G W 6.13.0-rc5+ #69
[ 5.448690] Tainted: [W]=WARN
[ 5.451656] Hardware name: xlnx,zynqmp (DT)
[ 5.455845] Workqueue: events_unbound deferred_probe_work_func
[ 5.461699] Call trace:
[ 5.464147] show_stack+0x18/0x24 C
[ 5.467821] dump_stack_lvl (lib/dump_stack.c:123)
[ 5.471501] dump_stack (lib/dump_stack.c:130)
[ 5.474824] __lock_acquire (kernel/locking/lockdep.c:4828 kernel/locking/lockdep.c:4898 kernel/locking/lockdep.c:5176)
[ 5.478758] lock_acquire (arch/arm64/include/asm/percpu.h:40 kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5851 kernel/locking/lockdep.c:5814)
[ 5.482429] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162)
[ 5.486797] xgpio_irq_unmask (drivers/gpio/gpio-xilinx.c:433 (discriminator 8))
[ 5.490737] irq_enable (kernel/irq/internals.h:236 kernel/irq/chip.c:170 kernel/irq/chip.c:439 kernel/irq/chip.c:432 kernel/irq/chip.c:345)
[ 5.494060] __irq_startup (kernel/irq/internals.h:241 kernel/irq/chip.c:180 kernel/irq/chip.c:250)
[ 5.497645] irq_startup (kernel/irq/chip.c:270)
[ 5.501143] __setup_irq (kernel/irq/manage.c:1807)
[ 5.504728] request_threaded_irq (kernel/irq/manage.c:2208)

Affected products

VendorProductAffectedFixed
Linux Linux 5.12 5.15.179

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.12.11-1 —
Debian 13 linux 6.12.11-1 —
Debian 12 linux 6.1.129-1 —
Debian 11 linux-6.1 6.1.129-1~deb11u1 DLA-4102-1
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 22.04 LTS linux-bluefield 5.15.0-1066.68 —
Ubuntu 24.04 LTS linux 6.8.0-62.65 USN-7595-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1030.32 USN-7595-1
Ubuntu 24.04 LTS linux-azure 6.8.0-1030.35 USN-7596-1
Ubuntu 24.04 LTS linux-azure-nvidia 6.8.0-1018.19 USN-7596-2
Ubuntu 24.04 LTS linux-gcp 6.8.0-1031.33 USN-7595-5
Ubuntu 24.04 LTS linux-gcp-6.11 +1 6.11.0-1013.13~24.04.1 USN-7448-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1026.30 USN-7595-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1013.15 USN-7595-1
Ubuntu 24.04 LTS linux-hwe-6.11 6.11.0-24.24~24.04.1 USN-7445-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1027.27 USN-7595-1
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-62.65.1 USN-7595-1
Ubuntu 24.04 LTS linux-lowlatency-hwe-6.11 6.11.0-1012.13~24.04.1 USN-7445-1
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1029.32 USN-7595-1
Ubuntu 24.04 LTS linux-nvidia-6.11 6.11.0-1007.7 —
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1029.32.1 USN-7595-1
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1008.8 —
Ubuntu 24.04 LTS linux-oem-6.11 6.11.0-1020.20 USN-7445-1
Ubuntu 24.04 LTS linux-oem-6.8 6.8.0-1029.29 USN-7595-1
Ubuntu 24.04 LTS linux-oracle 6.8.0-1027.28 USN-7595-4
Ubuntu 24.04 LTS linux-raspi 6.8.0-1029.33 USN-7595-4
Ubuntu 24.04 LTS linux-riscv +2 No fix yet —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1017.18 —
Ubuntu 22.04 LTS linux +1 5.15.0-140.150 USN-7510-1
Ubuntu 22.04 LTS linux-aws 5.15.0-1084.91 USN-7510-7
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1030.32~22.04.1 USN-7595-1
Ubuntu 22.04 LTS linux-azure 5.15.0-1089.98 USN-7510-3
Ubuntu 22.04 LTS linux-azure-6.8 6.8.0-1030.35~22.04.1 USN-7596-1
Ubuntu 22.04 LTS linux-azure-fde 5.15.0-1089.98.1 —
Ubuntu 22.04 LTS linux-gcp 5.15.0-1083.92 USN-7511-1
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1031.33~22.04.1 USN-7595-5
Ubuntu 22.04 LTS linux-gke +1 5.15.0-1081.87 USN-7511-3, USN-7510-1
Ubuntu 22.04 LTS linux-gkeop 5.15.0-1066.74 USN-7510-1
Ubuntu 22.04 LTS linux-hwe-6.8 6.8.0-64.67~22.04.1 USN-7653-1
Ubuntu 22.04 LTS linux-ibm 5.15.0-1076.79 USN-7510-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1027.27~22.04.1 —
Ubuntu 22.04 LTS linux-intel-iotg 5.15.0-1079.85 USN-7510-1
Ubuntu 22.04 LTS linux-kvm 5.15.0-1080.85 USN-7510-1
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-62.65.1~22.04.1 USN-7595-1
Ubuntu 22.04 LTS linux-nvidia 5.15.0-1078.79 USN-7510-1
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1029.32~22.04.1 USN-7595-1
Ubuntu 22.04 LTS linux-nvidia-tegra 5.15.0-1037.37 USN-7510-3
Ubuntu 22.04 LTS linux-nvidia-tegra-igx 5.15.0-1026.26 USN-7510-7
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1027.28~22.04.1 USN-7595-4
Ubuntu 22.04 LTS linux-raspi 5.15.0-1078.81 USN-7510-7
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-62.65~22.04.1 —
Ubuntu 22.04 LTS linux-xilinx-zynqmp 5.15.0-1050.54 USN-7602-1
Ubuntu 20.04 LTS linux-aws-5.15 5.15.0-1084.91~20.04.1 USN-7510-8
Ubuntu 20.04 LTS linux-azure-5.15 5.15.0-1089.98~20.04.1 USN-7510-3
Ubuntu 20.04 LTS linux-gcp-5.15 5.15.0-1083.92~20.04.1 USN-7512-1
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 20.04 LTS linux-ibm-5.15 5.15.0-1076.79~20.04.1 USN-7510-1
Ubuntu 20.04 LTS linux-intel-iotg-5.15 5.15.0-1079.85~20.04.1 USN-7510-7
Ubuntu 20.04 LTS linux-lowlatency-hwe-5.15 5.15.0-140.150~20.04.1 USN-7510-1
Ubuntu 20.04 LTS linux-oracle-5.15 5.15.0-1081.87~20.04.1 USN-7510-1
Ubuntu 20.04 LTS linux-riscv-5.15 5.15.0-1079.83~20.04.1 —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2024.25 USN-7595-3
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1023.24 USN-7595-2
Ubuntu Pro Realtime 22.04 LTS linux-intel-iot-realtime 5.15.0-1077.79 USN-7510-4
Ubuntu Pro Realtime 22.04 LTS linux-realtime 5.15.0-1084.93 USN-7510-4
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1023.24~22.04.1 —
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-78.78+fips1 —
Ubuntu Pro FIPS-updates 22.04 LTS linux-aws-fips 5.15.0-1084.91+fips1 USN-7510-6
Ubuntu Pro FIPS-updates 22.04 LTS linux-azure-fips 5.15.0-1089.98+fips1 USN-7510-5
Ubuntu Pro FIPS-updates 22.04 LTS linux-fips 5.15.0-140.150+fips1 USN-7510-2
Ubuntu Pro FIPS-updates 22.04 LTS linux-gcp-fips 5.15.0-1083.92+fips1 USN-7511-2
Ubuntu Pro FIPS-preview 22.04 LTS linux-fips +3 No fix yet —
Ubuntu Pro 20.04 LTS linux-hwe-5.15 5.15.0-142.152~20.04.1 USN-7593-1
Ubuntu Pro 20.04 LTS linux-nvidia-tegra-5.15 5.15.0-1039.39~20.04.1 —
ReleasePackageFixed inAdvisory
SLES 15 SP6 kernel-64kb +3 6.4.0-150600.23.42.2 SUSE-SU-2025:0856-1
SLES 15 SP6 kernel-azure +2 6.4.0-150600.8.31.1 SUSE-SU-2025:0847-1
SLES 15 SP6 kernel-coco +3 6.4.0-15061.18.coco15sp6.1 SUSE-SU-2025:0784-1
SLES 15 SP6 kernel-default-base 6.4.0-150600.23.42.2.150600.12.18.4 SUSE-SU-2025:0856-1
SLES 15 SP6 kernel-docs +2 6.4.0-150600.23.42.1 SUSE-SU-2025:0856-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLE Micro 6.1 kernel-default-base 6.4.0-28.1.21.6 SUSE-SU-2025:20270-1
SLE Micro 6.1 kernel-livepatch-MICRO-6-0_Update_6 +1 1-3.1 SUSE-SU-2025:20270-1, SUSE-SU-2025:20260-1
SLE Micro 6.1 kernel-rt +4 6.4.0-28.1 SUSE-SU-2025:20270-1, SUSE-SU-2025:20260-1
SLE Micro 6.0 kernel-default-base 6.4.0-28.1.21.6 SUSE-SU-2025:20192-1
SLE Micro 6.0 kernel-livepatch-MICRO-6-0_Update_6 +1 1-3.1 SUSE-SU-2025:20192-1, SUSE-SU-2025:20190-1
SLE Micro 6.0 kernel-rt +4 6.4.0-28.1 SUSE-SU-2025:20192-1, SUSE-SU-2025:20190-1
SLE Live Patching 15 SP6 kernel-default 6.4.0-150600.23.42.2 SUSE-SU-2025:0856-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_9 1-150600.1.3.2 SUSE-SU-2025:0955-1
SLE Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_9 1-150600.13.3.4 SUSE-SU-2025:0856-1
SUSE Real Time Module 15 SP6 kernel-rt +3 6.4.0-150600.10.29.1 SUSE-SU-2025:0955-1
ReleasePackageFixed inAdvisory
openSUSE Leap 15.6 dtb-aarch64 +4 6.4.0-150600.23.42.1 SUSE-SU-2025:0856-1
openSUSE Leap 15.6 kernel-64kb +5 6.4.0-150600.23.42.2 SUSE-SU-2025:0856-1
openSUSE Leap 15.6 kernel-azure +2 6.4.0-150600.8.31.1 SUSE-SU-2025:0847-1
openSUSE Leap 15.6 kernel-default-base 6.4.0-150600.23.42.2.150600.12.18.4 SUSE-SU-2025:0856-1
openSUSE Leap 15.6 kernel-rt +3 6.4.0-150600.10.29.1 SUSE-SU-2025:0955-1

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 kernel 6.6.76.1-1 —
Azure Linux 2 (CBL-Mariner) kernel 5.15.179.1-1 —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 9 kernel-uek +34 6.12.0-101.33.4.3.el10uek ELSA-2025-20530, ELSA-2025-20480

Advisories 37

References