Linux 7.3 Better Protects Against Buggy EFI Firmware Taking Down The Rest Of User-Space
The Linux 7.3 kernel has been updated to enforce a timeout for EFI runtime service completions, preventing buggy firmware from taking down the rest of user-space.
Intelligence analysis by Llama
The Linux 7.3 kernel has been updated to enforce a timeout for EFI runtime service completions, preventing buggy firmware from taking down the rest of user-space. This change was made to address a issue where buggy firmware could cause the kernel to hang indefinitely.
Imagine you're trying to use your computer, but the firmware is being stubborn and won't let you. This update helps prevent that from happening by setting a timer for how long the firmware can take to do its job. If it takes too long, the computer will just shut down the firmware and move on.
Analysis
Linux 7.3 Kernel Update Addresses Buggy EFI Firmware Issue
The Linux 7.3 kernel has been updated to address a long-standing issue with buggy EFI firmware. This update enforces a timeout for EFI runtime service completions, preventing buggy firmware from taking down the rest of user-space.
The issue at hand is that buggy firmware can cause the kernel to hang indefinitely, leading to system crashes and data loss. This is a significant problem for users who rely on Linux for their computing needs.
To address this issue, the Linux 7.3 kernel has been updated to enforce a timeout for EFI runtime service completions. This timeout is set to 120 seconds, which is longer than any plausible legitimate call into the EFI runtime services.
This change was made by Breno Leitao, a Debian developer and kernel engineer at Meta. Leitao worked on the patches to provide a timeout on EFI runtime service calls, which was necessary to address the issue.
The timeout threshold being set is 120 seconds, which is longer than any plausible legitimate call into the EFI runtime services. This new safeguard landed via the EFI feature merge into Linux 7.3.
The impact of this update is significant, as it helps to prevent buggy firmware from causing system crashes and data loss. This is a major win for users who rely on Linux for their computing needs.
Breno Leitao's Patch Series
Breno Leitao's patch series provides a timeout on EFI runtime service calls. This is necessary to address the issue of buggy firmware causing the kernel to hang indefinitely.
Leitao explained the situation with the patch series cover letter: "When an EFI runtime service call hangs in firmware, the kworker on efi_rts_wq is stuck inside the firmware call and cannot be cancelled. The kernel currently waits indefinitely on the completion, and the caller holds efi_runtime_lock for the duration, so every subsequent EFI runtime caller (efivarfs, NVRAM writes, set_wakeup_time, ACPI PRM handlers, ...) is wedged until reboot."
The patch series doesn't fix the firmware bug - that's vendor territory - but it stops one stuck EFI call from taking the rest of userspace down with it, and turns a generic stalled-task mystery into an unambiguous "EFI firmware is at fault" signal in dmesg, which is especially valuable at fleet scale where the same symptom could otherwise be attributed to dozens of unrelated stalls.
Impact of the Update
The impact of this update is significant, as it helps to prevent buggy firmware from causing system crashes and data loss. This is a major win for users who rely on Linux for their computing needs.
The update enforces a timeout for EFI runtime service completions, preventing buggy firmware from taking down the rest of user-space. This change was made to address a issue where buggy firmware could cause the kernel to hang indefinitely.
Key points
- The Linux 7.3 kernel has been updated to enforce a timeout for EFI runtime service completions.
- This update helps prevent buggy firmware from causing system crashes and data loss.
- The timeout threshold being set is 120 seconds, which is longer than any plausible legitimate call into the EFI runtime services.
This update is a significant step forward in preventing system crashes and data loss caused by buggy firmware. It's a major win for users who rely on Linux for their computing needs.
However, it's worth noting that this update doesn't fix the underlying firmware bug. That's still a problem that needs to be addressed by the firmware vendors.