Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

PCI: Mark shadow copy of VGA ROM as IORESOURCE_PCI_FIXED

A shadow copy of an option ROM is placed by the BIOS as a fixed address.
Set IORESOURCE_PCI_FIXED to indicate that we can't move the shadow copy.
This prevents warnings like the following when we assign resources:

BAR 6: [??? 0x00000000 flags 0x2] has bogus alignment

This warning is emitted by pdev_sort_resources(), which already ignores
IORESOURCE_PCI_FIXED resources.

Link: http://lkml.kernel.org/r/CA+55aFyVMfTBB0oz_yx8+eQOEJnzGtCsYSj9QuhEpdZ9BHdq5A@mail.gmail.com
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>

+4 -2
+2 -1
arch/ia64/pci/fixup.c
··· 61 61 if (!vga_default_device() || pdev == vga_default_device()) { 62 62 pci_read_config_word(pdev, PCI_COMMAND, &config); 63 63 if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { 64 - pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; 64 + pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW | 65 + IORESOURCE_PCI_FIXED; 65 66 dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n"); 66 67 } 67 68 }
+2 -1
arch/x86/pci/fixup.c
··· 336 336 if (!vga_default_device() || pdev == vga_default_device()) { 337 337 pci_read_config_word(pdev, PCI_COMMAND, &config); 338 338 if (config & (PCI_COMMAND_IO | PCI_COMMAND_MEMORY)) { 339 - pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW; 339 + pdev->resource[PCI_ROM_RESOURCE].flags |= IORESOURCE_ROM_SHADOW | 340 + IORESOURCE_PCI_FIXED; 340 341 dev_printk(KERN_DEBUG, &pdev->dev, "Video device with shadowed ROM\n"); 341 342 } 342 343 }