Executive brief
The Linux kernel's Nouveau graphics driver failed to initialize a locking mechanism for DisplayPort encoder hotplug detection on certain boards with ANX9805 encoders, causing the system to crash (OOPS). This affects systems using Nvidia graphics cards with these specific DP encoder configurations, resulting in boot failures or display initialization hangs.
Technical details
This is a missing initialization bug in the Nouveau DRM driver's nv50-class display encoder code. The hpd_irq_lock mutex was not being initialized during PIOR (Parallel Input/Output Receiver) DP encoder setup, but was being accessed and destroyed during operation. Without proper initialization, accessing the uninitialized mutex causes a kernel OOPS. The fix adds mutex_init() calls during encoder creation and corresponding mutex_destroy() calls during cleanup. The vulnerability affects kernel 6.4 and later, requires a system with an ANX9805 DP encoder, and is triggered during display initialization (local, unauthenticated, no user interaction required beyond system boot).
Affected products
- Linux Linux kernel 6.4+
Timeline
- 2023-07-19: disclosed
- 2023-07-27: patched