]> www.infradead.org Git - users/hch/misc.git/commitdiff
PCI/VGA: Select SCREEN_INFO on X86
authorMario Limonciello (AMD) <superm1@kernel.org>
Mon, 13 Oct 2025 22:08:26 +0000 (17:08 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 17 Oct 2025 13:31:14 +0000 (08:31 -0500)
commit 337bf13aa9dda ("PCI/VGA: Replace vga_is_firmware_default() with a
screen info check") introduced an implicit dependency upon SCREEN_INFO by
removing the open coded implementation.

If a user didn't have CONFIG_SCREEN_INFO set, vga_is_firmware_default()
would now return false.  SCREEN_INFO is only used on X86 so add a
conditional select for SCREEN_INFO to ensure that the VGA arbiter works as
intended.

Fixes: 337bf13aa9dda ("PCI/VGA: Replace vga_is_firmware_default() with a screen info check")
Reported-by: Eric Biggers <ebiggers@kernel.org>
Closes: https://lore.kernel.org/linux-pci/20251012182302.GA3412@sol/
Suggested-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Tested-by: Eric Biggers <ebiggers@kernel.org>
Link: https://patch.msgid.link/20251013220829.1536292-1-superm1@kernel.org
drivers/pci/Kconfig
drivers/pci/vgaarb.c

index 7065a8e5f9b14fd307892eba131f08e29db8e6c2..f94f5d384362e543a1e1cfaf7d77240c446131f5 100644 (file)
@@ -306,6 +306,7 @@ config VGA_ARB
        bool "VGA Arbitration" if EXPERT
        default y
        depends on (PCI && !S390)
+       select SCREEN_INFO if X86
        help
          Some "legacy" VGA devices implemented on PCI typically have the same
          hard-decoded addresses as they did on ISA. When multiple PCI devices
index b58f94ee4891624c4923987246eb2b3112bfb05c..436fa7f4c3873ba5c92bd1edbfd14e51d2ec1c6f 100644 (file)
@@ -556,10 +556,8 @@ EXPORT_SYMBOL(vga_put);
 
 static bool vga_is_firmware_default(struct pci_dev *pdev)
 {
-#ifdef CONFIG_SCREEN_INFO
-       struct screen_info *si = &screen_info;
-
-       return pdev == screen_info_pci_dev(si);
+#if defined CONFIG_X86
+       return pdev == screen_info_pci_dev(&screen_info);
 #else
        return false;
 #endif