In the Linux kernel, the following vulnerability has been resolved: video/aperture: optionally match the device in sysfbdisable() In apertureremoveconflictingpcidevices(), we currently only call sysfbdisable() on vga class devices. This leads to the following problem when the pimary device is not VGA compatible: 1. A PCI device with a non-VGA class is the boot display 2. That device is probed first and it is not a VGA device so sysfbdisable() is not called, but the device resources are freed by aperturedetachplatformdevice() 3. Non-primary GPU has a VGA class and it ends up calling sysfbdisable() 4. NULL pointer dereference via sysfbdisable() since the resources have already been freed by aperturedetachplatformdevice() when it was called by the other device. Fix this by passing a device pointer to sysfbdisable() and checking the device to determine if we should execute it or not. v2: Fix build when CONFIGSCREENINFO is not set v3: Move device check into the mutex Drop primary variable in apertureremoveconflictingpcidevices() Drop _init on pci sysfbpcidevis_enabled()