Description
In the Linux kernel, the following vulnerability has been resolved:
net: Fix null-ptr-deref by sock_lock_init_class_and_name() and rmmod.
When I ran the repro [0] and waited a few seconds, I observed two
LOCKDEP splats: a warning immediately followed by a null-ptr-deref. [1]
Reproduction Steps:
1) Mount CIFS
2) Add an iptables rule to drop incoming FIN packets for CIFS
3) Unmount CIFS
4) Unload the CIFS module
5) Remove the iptables rule
At step 3), the CIFS module calls sock_release() for the underlying
TCP socket, and it returns quickly. However, the socket remains in
FIN_WAIT_1 because incoming FIN packets are dropped.
At this point, the module's refcnt is 0 while the socket is still
alive, so the following rmmod command succeeds.
# ss -tan
State Recv-Q Send-Q Local Address:Port Peer Address:Port
FIN-WAIT-1 0 477 10.0.2.15:51062 10.0.0.137:445
# lsmod | grep cifs
cifs 1159168 0
This highlights a discrepancy between the lifetime of the CIFS module
and the underlying TCP socket. Even after CIFS calls sock_release()
and it returns, the TCP socket does not die immediately in order to
close the connection gracefully.
While this is generally fine, it causes an issue with LOCKDEP because
CIFS assigns a different lock class to the TCP socket's sk->sk_lock
using sock_lock_init_class_and_name().
Once an incoming packet is processed for the socket or a timer fires,
sk->sk_lock is acquired.
Then, LOCKDEP checks the lock context in check_wait_context(), where
hlock_class() is called to retrieve the lock class. However, since
the module has already been unloaded, hlock_class() logs a warning
and returns NULL, triggering the null-ptr-deref.
If LOCKDEP is enabled, we must ensure that a module calling
sock_lock_init_class_and_name() (CIFS, NFS, etc) cannot be unloaded
while such a socket is still alive to prevent this issue.
Let's hold the module reference in sock_lock_init_class_and_name()
and release it when the socket is freed in sk_prot_free().
Note that sock_lock_init() clears sk->sk_owner for svc_create_socket()
that calls sock_lock_init_class_and_name() for a listening socket,
which clones a socket by sk_clone_lock() without GFP_ZERO.
[0]:
CIFS_SERVER="10.0.0.137"
CIFS_PATH="//${CIFS_SERVER}/Users/Administrator/Desktop/CIFS_TEST"
DEV="enp0s3"
CRED="/root/WindowsCredential.txt"
MNT=$(mktemp -d /tmp/XXXXXX)
mount -t cifs ${CIFS_PATH} ${MNT} -o vers=3.0,credentials=${CRED},cache=none,echo_interval=1
iptables -A INPUT -s ${CIFS_SERVER} -j DROP
for i in $(seq 10);
do
umount ${MNT}
rmmod cifs
sleep 1
done
rm -r ${MNT}
iptables -D INPUT -s ${CIFS_SERVER} -j DROP
[1]:
DEBUG_LOCKS_WARN_ON(1)
WARNING: CPU: 10 PID: 0 at kernel/locking/lockdep.c:234 hlock_class (kernel/locking/lockdep.c:234 kernel/locking/lockdep.c:223)
Modules linked in: cifs_arc4 nls_ucs2_utils cifs_md4 [last unloaded: cifs]
CPU: 10 UID: 0 PID: 0 Comm: swapper/10 Not tainted 6.14.0 #36
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
RIP: 0010:hlock_class (kernel/locking/lockdep.c:234 kernel/locking/lockdep.c:223)
...
Call Trace:
<IRQ>
__lock_acquire (kernel/locking/lockdep.c:4853 kernel/locking/lockdep.c:5178)
lock_acquire (kernel/locking/lockdep.c:469 kernel/locking/lockdep.c:5853 kernel/locking/lockdep.c:5816)
_raw_spin_lock_nested (kernel/locking/spinlock.c:379)
tcp_v4_rcv (./include/linux/skbuff.h:1678 ./include/net/tcp.h:2547 net/ipv4/tcp_ipv4.c:2350)
...
BUG: kernel NULL pointer dereference, address: 00000000000000c4
PF: supervisor read access in kernel mode
PF: error_code(0x0000) - not-present page
PGD 0
Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
CPU: 10 UID: 0 PID: 0 Comm: swapper/10 Tainted: G W 6.14.0 #36
Tainted: [W]=WARN
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
RIP: 0010:__lock_acquire (kernel/
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 2.6.20 | 5.4.300 |
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.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.12.25-1 | — |
| Debian 13 | linux | 6.12.25-1 | — |
| Debian 12 | linux | 6.1.153-1 | DSA-6009-1 |
| Debian 11 | linux | 5.10.247-1 | DLA-4404-1 |
| Debian 11 | linux-6.1 | 6.1.153-1~deb11u1 | DLA-4328-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | 6.8.0-1017.21 | — |
| Ubuntu Nvidia-BlueField 22.04 LTS | linux-bluefield | 5.15.0-1084.86 | — |
| Ubuntu 25.10 | linux-azure-fde | No fix yet | — |
| Ubuntu 25.04 | linux | 6.14.0-22.22 | USN-7594-1 |
| Ubuntu 25.04 | linux-aws +3 | 6.14.0-1007.7 | USN-7594-3, USN-7594-2, USN-7594-1 |
| Ubuntu 25.04 | linux-gcp | 6.14.0-1008.8 | USN-7594-1 |
| Ubuntu 25.04 | linux-realtime | 6.14.0-1004.4 | USN-7594-1 |
| Ubuntu 24.04 LTS | linux | 6.8.0-106.106 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-aws | 6.8.0-1050.53 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-azure | 6.8.0-1051.57 | USN-8125-1 |
| Ubuntu 24.04 LTS | linux-azure-fde | 6.8.0-1058.65 | — |
| Ubuntu 24.04 LTS | linux-azure-nvidia | 6.8.0-1039.42 | — |
| Ubuntu 24.04 LTS | linux-gcp | 6.8.0-1052.55 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1048.53 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1035.38 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1049.49 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-intel +10 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-106.106.1 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-nvidia | 6.8.0-1049.52 | USN-8100-1 |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1049.52.1 | USN-8100-1 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1020.20 | — |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1047.48 | USN-8095-1 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1050.54 | USN-8095-5 |
| Ubuntu 24.04 LTS | linux-xilinx | 6.8.0-1028.29 | USN-8261-1 |
Show 19 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 22.04 LTS | linux +1 | 5.15.0-170.180 | USN-8033-1 |
| Ubuntu 22.04 LTS | linux-aws | 5.15.0-1100.107 | USN-8033-1 |
| Ubuntu 22.04 LTS | linux-aws-6.8 | 6.8.0-1050.53~22.04.1 | USN-8095-4 |
| Ubuntu 22.04 LTS | linux-azure | 5.15.0-1109.118 | USN-8163-2 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1051.57~22.04.1 | USN-8126-1 |
| Ubuntu 22.04 LTS | linux-azure-fde | 5.15.0-1109.118.1 | — |
| Ubuntu 22.04 LTS | linux-azure-fde-6.8 | 6.8.0-1058.65~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-gcp | 5.15.0-1100.109 | USN-8033-1 |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1052.55~22.04.1 | USN-8095-1 |
| Ubuntu 22.04 LTS | linux-gke | 5.15.0-1096.102 | USN-8033-1 |
| Ubuntu 22.04 LTS | linux-gkeop | 5.15.0-1083.91 | USN-8033-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 +1 | 6.8.0-106.106~22.04.1 | USN-8095-1 |
| Ubuntu 22.04 LTS | linux-ibm | 5.15.0-1094.97 | USN-8033-1 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1049.49~22.04.1 | USN-8095-1 |
| Ubuntu 22.04 LTS | linux-intel-iotg | 5.15.0-1095.101 | USN-8033-8 |
| Ubuntu 22.04 LTS | linux-kvm | 5.15.0-1092.97 | USN-8033-5 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-106.106.1~22.04.1 | USN-8095-1 |
| Ubuntu 22.04 LTS | linux-nvidia | 5.15.0-1095.96 | USN-8033-6 |
| Ubuntu 22.04 LTS | linux-nvidia-6.8 | 6.8.0-1049.52~22.04.1 | USN-8100-1 |
| Ubuntu 22.04 LTS | linux-nvidia-tegra | 5.15.0-1052.52 | USN-8034-1 |
| Ubuntu 22.04 LTS | linux-nvidia-tegra-igx | 5.15.0-1041.41 | USN-8034-2 |
| Ubuntu 22.04 LTS | linux-oracle | 5.15.0-1097.103 | USN-8033-5 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1047.48~22.04.1 | USN-8095-1 |
| Ubuntu 22.04 LTS | linux-raspi | 5.15.0-1097.100 | USN-8141-1 |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
| Ubuntu 22.04 LTS | linux-xilinx-zynqmp | 5.15.0-1064.68 | USN-8033-7 |
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2040.41 | USN-8095-5 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1045.46 | USN-8095-3 |
| Ubuntu Pro Realtime 22.04 LTS | linux-intel-iot-realtime | 5.15.0-1092.94 | USN-8033-2 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime | 5.15.0-1099.108 | USN-8033-2 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1045.46~22.04.1 | USN-8095-3 |
| Ubuntu Pro FIPS 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1050.53+fips1 | USN-8095-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-azure-fips | 6.8.0-1052.58+fips1 | USN-8165-1 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-106.106+fips1 | USN-8095-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips | 6.8.0-1052.55+fips1 | USN-8095-2 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-aws-fips | 5.15.0-1100.107+fips1 | USN-8033-3 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-azure-fips | 5.15.0-1109.118+fips1 | USN-8163-1 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-fips | 5.15.0-170.180+fips1 | USN-8033-3 |
| Ubuntu Pro FIPS-updates 22.04 LTS | linux-gcp-fips | 5.15.0-1100.109+fips1 | USN-8033-3 |
| Ubuntu Pro FIPS-updates 20.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 18.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro FIPS-updates 16.04 LTS | linux-fips | No fix yet | — |
| Ubuntu Pro FIPS-preview 22.04 LTS | linux-fips +3 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux +10 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | linux-aws-5.15 | 5.15.0-1100.107~20.04.2 | USN-8033-4 |
| Ubuntu Pro 20.04 LTS | linux-azure-5.15 | 5.15.0-1110.119~20.04.1 | USN-8243-1 |
| Ubuntu Pro 20.04 LTS | linux-gcp-5.15 | 5.15.0-1100.109~20.04.1 | USN-8033-5 |
| Ubuntu Pro 20.04 LTS | linux-hwe-5.15 | 5.15.0-170.180~20.04.3 | USN-8033-1 |
| Ubuntu Pro 20.04 LTS | linux-ibm-5.15 | 5.15.0-1094.97~20.04.1 | USN-8033-1 |
| Ubuntu Pro 20.04 LTS | linux-intel-iotg-5.15 | 5.15.0-1095.101~20.04.1 | USN-8033-7 |
| Ubuntu Pro 20.04 LTS | linux-lowlatency-hwe-5.15 | 5.15.0-170.180~20.04.1 | USN-8033-1 |
| Ubuntu Pro 20.04 LTS | linux-nvidia-tegra-5.15 | 5.15.0-1052.52~20.04.2 | USN-8034-1 |
| Ubuntu Pro 20.04 LTS | linux-oracle-5.15 | 5.15.0-1097.103~20.04.1 | USN-8033-5 |
| Ubuntu Pro 20.04 LTS | linux-riscv-5.15 | 5.15.0-1095.99~20.04.1 | — |
| Ubuntu Pro 18.04 LTS | linux +12 | No fix yet | — |
| Ubuntu Pro 16.04 LTS | linux +7 | No fix yet | — |
| Ubuntu Pro 14.04 LTS | linux +3 | No fix yet | — |
Amazon Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Amazon Linux 2023 | bpftool +14 | 6.12.25-32.101.amzn2023 | ALAS2023-2025-1210, ALAS2023-2025-995 |
| Amazon Linux 2023 | kernel-livepatch-6.1.153-175.280 | 1:1.0-0.amzn2023 | ALAS2023-2025-1210 |
| Amazon Linux 2023 | kernel-livepatch-6.12.25-32.101 | 1.0-0.amzn2023 | ALAS2023-2025-995 |
| Amazon Linux 2023 | perf +5 | 1:6.1.153-175.280.amzn2023 | ALAS2023-2025-1210 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | kernel | 6.6.112.1-2 | — |
| Azure Linux 2 (CBL-Mariner) | kernel | 5.15.200.1-1 | — |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 8 | bpftool +18 | 5.15.0-315.196.5.1.el9uek | ELSA-2025-28048 |
| Oracle Linux 7 | kernel-uek +6 | 5.4.17-2136.350.3.1.el8uek | ELSA-2025-28049 |
| Oracle Linux 7 | kernel-uek-tools | 5.4.17-2136.350.3.1.el7uek | ELSA-2025-28049 |
Advisories 41
- SSA-457936 SSA-457936: Vulnerabilities in the additional GNU/Linux subsystem of the SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP V3.1.7 Siemens ProductCERT · Nov 10, 2026
- USN-8243-1 linux-azure-5.15 vulnerabilities Ubuntu Security Notices (USN) · Nov 4, 2026
- USN-8100-1 linux-nvidia, linux-nvidia-6.8, linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 4, 2026
- USN-8163-1 linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 4, 2026
- USN-8141-1 linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 4, 2026
- USN-8165-1 linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 4, 2026
- USN-8163-2 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Nov 4, 2026
- USN-8034-2 linux-nvidia-tegra-igx vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-1 linux, linux-aws, linux-gcp, linux-gke, linux-gkeop, linux-hwe-5.15, linux-ibm, linux-ibm-5.15, linux-lowlatency, linux-lowlatency-hwe-5.15 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8034-1 linux-nvidia-tegra, linux-nvidia-tegra-5.15 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-4 linux-aws-5.15 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-8 linux-intel-iotg vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-3 linux-aws-fips, linux-fips, linux-gcp-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-7 linux-intel-iotg-5.15, linux-xilinx-zynqmp vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-5 linux-gcp-5.15, linux-kvm, linux-oracle, linux-oracle-5.15 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-2 linux-intel-iot-realtime, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8033-6 linux-nvidia vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8095-1 linux, linux-aws, linux-gcp, linux-gcp-6.8, linux-gke, linux-gkeop, linux-hwe-6.8, linux-ibm, linux-ibm-6.8, linux-lowlatency, linux-lowlatency-hwe-6.8, linux-oracle, linux-oracle-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8095-2 linux-fips, linux-aws-fips, linux-gcp-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8126-1 linux-azure-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8095-5 linux-raspi, linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8125-1 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8095-4 linux-aws-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8095-3 linux-realtime, linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- ICSA-26-295-11 Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP CISA ICS & IT advisories · Oct 22, 2026
- SSA-019113 SSA-019113: Vulnerabilities in the additional GNU/Linux subsystem of the SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP V3.1.6 Siemens ProductCERT · Oct 13, 2026
- USN-8261-1 linux-xilinx vulnerabilities Ubuntu Security Notices (USN) · Sep 7, 2026
- ICSA-26-209-04 Siemens SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP CISA ICS & IT advisories · Jul 28, 2026
- ICSA-26-134-10 Siemens SIMATIC CISA ICS & IT advisories · May 14, 2026
- NCSC-2026-0147 Kwetsbaarheden verholpen in Siemens-producten NCSC-NL (Netherlands) · May 13, 2026
- SSA-032379 SSA-032379: Multiple Vulnerabilities in SIMATIC CN 4100 Before V5.0 Siemens ProductCERT · May 12, 2026
- DSA-6009-1 linux - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DLA-4328-1 linux-6.1 - security update Debian Security (DSA / DLA) · Mar 9, 2026
- USN-7594-2 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- USN-7594-1 linux, linux-gcp, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- USN-7594-3 linux-aws, linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- DLA-4404-1 linux - security update Debian Security (DSA / DLA) · Dec 12, 2025
- ELSA-2025-28048 Important: Unbreakable Enterprise kernel security update (Oracle Linux 8) Oracle Linux Security Advisories (ELSA) · Dec 12, 2025
- ELSA-2025-28049 Important: Unbreakable Enterprise kernel security update (Oracle Linux 7) Oracle Linux Security Advisories (ELSA) · Dec 12, 2025
- ALAS2023-2025-1210 Important: kernel security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Sep 29, 2025
- ALAS2023-2025-995 Important: kernel6.12 security update (Amazon Linux 2023) Amazon Linux Security Center (ALAS) · Aug 26, 2025
References
- https://git.kernel.org/stable/c/83083c5fc7cf9b0f136a42f26aba60da380f3601
- https://git.kernel.org/stable/c/b7489b753667bc9245958a4896c9419743083c27
- https://git.kernel.org/stable/c/d51e47e2ab6ef10a317d576075cf625cdbf96426
- https://git.kernel.org/stable/c/feda73ad44a5cc80f6bf796bb1099a3fe71576d4
- https://git.kernel.org/stable/c/905d43b8ad2436c240f844acb3ebcc7a99b8ebf1
- https://git.kernel.org/stable/c/5f7f6abd92b6c8dc8f19625ef93c3a18549ede04
- https://git.kernel.org/stable/c/c11247a21aab4b50a23c8b696727d7483de2f1e1
- https://git.kernel.org/stable/c/2155802d3313d7b8365935c6b8d6edc0ddd7eb94
- https://git.kernel.org/stable/c/0bb2f7a1ad1f11d861f58e5ee5051c8974ff9569