Linux Kernel 6.6.122 released
Linux Kernel 6.6.122 has been released, featuring various bug fixes and enhancements.
One of the notable commits addresses an issue with the phylib state machine in the network device driver. Specifically, there was trouble with how the phylib state machine handled suspend and resume. The old method used a test to decide if it should stop or start, but that test wasn't quite right under certain conditions, like when a PHY device hadn't properly attached yet or had been detached.
A patch tackled this by modifying the phy_uses_state_machine() function. It now correctly returns false when the phydev's link change callback is missing (phydev->phy_link_change being NULL) or after detaching it. This prevents unnecessary state machine operations and should resolve those earlier problems, plus avoid introducing new ones.
There’s also another commit related to this area, moving the phy_link_change() function before mdio_bus_phy_may_suspend(). That might seem minor now, but it's setting up for future changes where distinguishing between different kinds of PHY clients (like phylib versus phylink) becomes essential. It helps reduce confusion later.
On a different front, x86 users might appreciate this fix concerning XFD-disabled features in the guest XSAVE state. If you're dealing with certain CPU feature flags or virtualization scenarios involving KVM_SET_XSAVE and WRMSR updates for eXtended Feature Disable (XFD), there was an issue where uninitialized values could sneak into reserved fields, leading to potential #NM exceptions and kernel panics.
Then we've got the ath11k driver, it's handling a nasty RCU stall problem right now. This happens during monitor destination ring cleanup if reaping entries goes wrong because of incorrect buf_id processing loops, which can eventually cause a kernel crash. The fix breaks that cycle by ensuring proper handling of the next MSDU entry.
In graphics and filesystems too. For AMDGPU (the driver for AMD GPUs), there's been an issue where waiting on locks while accepting signals could lead to memory leaks showing up as warning backtraces. Changing how the lock is acquired should clear this mess up permanently.
Meanwhile, NTFS3 file system users benefit from a fix related to uninitialized values caught by KMSAN (Kernel Sanitizer). It happens during normal filesystem operations when memory isn't properly zeroed before being used. By using kmem_cache_zalloc() instead of kmem_cache_alloc(), the allocated memory gets cleaned, fixing those false positives.
So yeah, this latest kernel brings several important updates: tightening up network device management, ensuring guest CPU state is handled safely on x86, fixing crashes in wireless drivers like ath11k, patching AMDGPU lock handling issues, and improving NTFS3's internal memory safety. Good stuff overall.
Linux kernel 6.6.122 released
Linux kernel version 6.6.122 is now available:
Full source: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.122.tar.xz
Patch: https://cdn.kernel.org/pub/linux/kernel/v6.x/patch-6.6.122.xz
PGP Signature: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.122.tar.sign
You can view the summary of the changes at the following URL:
https://git.kernel.org/stable/ds/v6.6.122/v6.6.121