Skip to content
  • Yongji Xie's avatar
    PCI: Don't resize resources when realigning all devices in system · e3adec72
    Yongji Xie authored
    
    
    The "pci=resource_alignment" argument aligns BARs of designated devices by
    artificially increasing their size.  Increasing the size increases the
    alignment and prevents other resources from being assigned in the same
    alignment region, e.g., in the same page, but it can break drivers that use
    the BAR size to locate things, e.g., ilo_map_device() does this:
    
      off = pci_resource_len(pdev, bar) - 0x2000;
    
    The new pcibios_default_alignment() interface allows an arch to request
    that *all* BARs in the system be aligned to a larger size.  In this case,
    we don't need to artificially increase the resource size because we know
    every BAR of every device will be realigned, so nothing will share the same
    alignment region.
    
    Use IORESOURCE_STARTALIGN to request realignment of PCI BARs when we know
    we're realigning all BARs in the system.
    
    [bhelgaas: comment, changelog]
    Signed-off-by: default avatarYongji Xie <elohimes@gmail.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    e3adec72