• Logan Gunthorpe's avatar
    PCI: Allow specifying devices using a base bus and path of devfns · 45db3370
    Logan Gunthorpe authored
    When specifying PCI devices on the kernel command line using a
    bus/device/function address, bus numbers can change when adding or
    replacing a device, changing motherboard firmware, or applying kernel
    parameters like "pci=assign-buses".  When bus numbers change, it's likely
    the command line tweak will be applied to the wrong device.
    
    Therefore, it is useful to be able to specify devices with a base bus
    number and the path of devfns needed to get to it, similar to the "device
    scope" structure in the Intel VT-d spec, Section 8.3.1.
    
    Thus, we add an option to specify devices in the following format:
    
      [<domain>:]<bus>:<device>.<func>[/<device>.<func>]*
    
    The path can be any segment within the PCI hierarchy of any length and
    determined through the use of 'lspci -t'.  When specified this way, it is
    less likely that a renumbered bus will result in a valid device
    specification and the tweak won't be applied to the wrong device.
    Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
    [bhelgaas: use "device" instead of "slot" in documentation since that's the
    usual language in the PCI specs]
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarStephen Bates <sbates@raithlin.com>
    Reviewed-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    Acked-by: default avatarChristian König <christian.koenig@amd.com>
    45db3370
pci.c 156 KB