Linux 3334 Published by

Linux Kernel 6.1.168, 6.6.134, 6.12.81, 6.18.22, and 6.19.12 are now available. The USB gadget subsystem took the biggest hit with patches fixing race conditions that caused crashes when users unbound devices or entered suspend modes. Kernel memory safety also gets a boost by ensuring kallsyms and thermal zones handle module removal and power events without dangling pointers. It is exactly the kind of boring update that keeps systems from spontaneously rebooting during critical operations.



Linux 6.19.12 release fixes critical USB and memory safety issues

The latest stable kernel update addresses several stability issues that could cause system crashes during device unbinding or power management transitions. Users relying on embedded gadget functions will find this essential for maintaining reliable connections when plugging in peripherals. This release from Greg Kroah-Hartman prioritizes safety over new features by targeting race conditions and memory corruption across multiple subsystems.

Kernel

USB gadget lifecycle and race conditions

The USB gadget subsystem has been the primary target of this update, with numerous patches addressing how network and video devices handle state changes during unbinding. Several drivers for RNDIS, subset, EEM, and ECM functions were updated to correctly reparent net_devices using device_move calls. Without these fixes, users would encounter dangling sysfs symlinks that point to non-existent gadget devices after a rebind cycle. The UVC function specifically received attention regarding NULL pointer dereferences that occurred during unbind races with power management events. A previous attempt to handle clean shutdowns relied on timing-based waits which proved insufficient when the system froze user space processes early. The new synchronization logic uses flags and mutexes to ensure the gadget pointer remains valid throughout the release path.

Kernel memory and thermal subsystem updates

Memory safety improvements extend beyond USB drivers with significant changes to kallsyms and thermal management code. Module removal races in kallsyms_lookup_buildid previously allowed pointers to be read after the related struct module got removed, leading to potential crashes during backtrace printing. The kallsysm fixes ensure RCU locks are held for the entire duration of symbol lookups involving build IDs. Thermal zone registration error paths now wait properly for removal completions to prevent premature freeing when user space has taken references. Race conditions between thermal work items and resume operations were also resolved by moving cancelation calls earlier in the suspend sequence. This prevents use-after-free scenarios where delayed work continues running after the thermal zone object has been destroyed.

Hardware specific driver corrections

Several hardware-specific drivers received targeted fixes to prevent crashes on particular architectures or chipsets. The Tegra crypto driver was updated to set the CRYPTO_ALG_ASYNC flag, preventing the API from selecting asynchronous algorithms for users requesting only synchronous ones. S390 systems saw adjustments to sampling rates to avoid exceptions caused by hitting maximum limits during heavy load. Memory leaks in ZynqMP NVMEM and i.MX drivers were corrected by ensuring buffer sizes match actual allocation requirements. The Renesas counter driver now prevents runtime PM usage count underflows that occurred when users toggled the enable file multiple times through sysfs. These changes ensure stability across a wider range of embedded hardware configurations without requiring manual intervention from system administrators.

Linux kernel 6.19.12 released

Linux kernel version 6.19.12 is now available:

Full source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.19.12.tar.xz
Patch: https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.19.12.xz
PGP Signature: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.19.12.tar.sign

You can view the summary of the changes at the following URL:
https://git.kernel.org/stable/ds/v6.19.12/v6.19.11

Linux kernel versions 6.1.168, 6.6.134, 6.12.81, and 6.18.22 are also now available

Linux kernel 6.1.168 released

Linux kernel version 6.1.168 is now available:

Full source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.168.tar.xz
Patch: https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.1.168.xz
PGP Signature: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.168.tar.sign

You can view the summary of the changes at the following URL:
https://git.kernel.org/stable/ds/v6.1.168/v6.1.167

Linux kernel 6.6.134 released

Linux kernel version 6.6.134 is now available:

Full source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.134.tar.xz
Patch: https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.6.134.xz
PGP Signature: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.134.tar.sign

You can view the summary of the changes at the following URL:
https://git.kernel.org/stable/ds/v6.6.134/v6.6.133

Linux kernel 6.12.81 released

Linux kernel version 6.12.81 is now available:

Full source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.81.tar.xz
Patch: https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.12.81.xz
PGP Signature: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.12.81.tar.sign

You can view the summary of the changes at the following URL:
https://git.kernel.org/stable/ds/v6.12.81/v6.12.80

Linux kernel 6.18.22 released

Linux kernel version 6.18.22 is now available:

Full source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.22.tar.xz
Patch: https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.18.22.xz
PGP Signature: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.22.tar.sign

You can view the summary of the changes at the following URL:
https://git.kernel.org/stable/ds/v6.18.22/v6.18.21

Keep your kernels patched and your hardware humming.