07 Jan, 2012

12 commits

  • DEVICE_COUNT_RESOURCE will be bigger than 16 when SRIOV supported is enabled.

    Let them pass with int just like pci_enable_resources().

    Signed-off-by: Yinghai Lu
    Signed-off-by: Jesse Barnes

    Yinghai Lu
     
  • Save some bytes for device resource array.

    Signed-off-by: Yinghai Lu
    Signed-off-by: Jesse Barnes

    Yinghai Lu
     
  • All users of pci_create_bus() have been converted to pci_create_root_bus(),
    so remove it.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • I plan to deprecate pci_scan_bus_parented(), so use pci_create_root_bus()
    directly instead. pci_scan_bus() itself will be removed as soon as all
    callers are gone, so this is just an interim step.

    v2: export pci_scan_bus

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • "Early" and "header" quirks often use incorrect bus resources because they
    see the default resources assigned by pci_create_bus(), before the
    architecture fixes them up (typically in pcibios_fixup_bus()). Regions
    reserved by these quirks end up with the wrong parents.

    Here's the standard path for scanning a PCI root bus:

    pci_scan_bus or pci_scan_bus_parented
    pci_create_bus
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • pci_create_bus() assigns ioport_resource and iomem_resource as the default
    bus resources, i.e., the entire address space. Architectures fix these
    later, typically in pcibios_fixup_bus() or after pci_scan_bus_parented()
    returns, but code that runs in the interim sees incorrect resource
    information.

    This patch adds a new pci_create_root_bus() that sets the bus resources
    correctly from a supplied list of resources.

    I intend to remove pci_create_bus() after changing all callers.

    Based on original patch by Deng-Cheng Zhu.

    Reference: http://www.spinics.net/lists/mips/msg41654.html
    Reference: https://lkml.org/lkml/2011/8/26/88
    Signed-off-by: Deng-Cheng Zhu
    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • We'd like to supply a list of resources when we create a new PCI bus,
    e.g., the root bus under a PCI host bridge. These are helpers for
    constructing that list.

    These are exported because the plan is to replace this exported interface:
    pci_scan_bus_parented()
    with this one:
    pci_add_resource(resources, ...)
    pci_scan_root_bus(..., resources)

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Jesse Barnes

    Bjorn Helgaas
     
  • The 'latency timer' of PCI devices, both Type 0 and Type 1,
    is setup in architecture-specific code [see: 'pcibios_set_master()'].
    There are two approaches being taken by all the architectures - check
    if the 'latency timer' is currently set between 16 and 255 and if not
    bring it within bounds, or, do nothing (and then there is the
    gratuitously different PA-RISC implementation).

    There is nothing architecture-specific about PCI's 'latency timer' so
    this patch pulls its setup functionality up into the PCI core by
    creating a generic 'pcibios_set_master()' function using the '__weak'
    attribute which can be used by all architectures as a default which,
    if necessary, can then be over-ridden by architecture-specific code.

    No functional change.

    Signed-off-by: Myron Stowe
    Signed-off-by: Jesse Barnes

    Myron Stowe
     
  • Currently, pcibios_set_master() is implemented in architecture-
    specific code. There is nothing architecture-specific about PCI's
    'latency timer'.

    This patch adds a declaration for pcibios_set_master() to PCI's core
    in preperation for pulling the function itself up into the core.
    Without the addition of this declaration, subsequent patches that
    remove inline definitions of pcibios_set_master() would be removing
    the only declaration of such.

    No functional change.

    Signed-off-by: Myron Stowe
    Signed-off-by: Jesse Barnes

    Myron Stowe
     
  • These new PCI services allow to probe for 2.3-compliant INTx masking
    support and then use the feature from PCI interrupt handlers. The
    services are properly synchronized with concurrent config space access
    via sysfs or on device reset.

    This enables generic PCI device drivers like uio_pci_generic or KVM's
    device assignment to implement the necessary kernel-side IRQ handling
    without any knowledge about device-specific interrupt status and control
    registers.

    Acked-by: Michael S. Tsirkin
    Signed-off-by: Jan Kiszka
    Signed-off-by: Jesse Barnes

    Jan Kiszka
     
  • pci_block_user_cfg_access was designed for the use case that a single
    context, the IPR driver, temporarily delays user space accesses to the
    config space via sysfs. This assumption became invalid by the time
    pci_dev_reset was added as locking instance. Today, if you run two loops
    in parallel that reset the same device via sysfs, you end up with a
    kernel BUG as pci_block_user_cfg_access detect the broken assumption.

    This reworks the pci_block_user_cfg_access to a sleeping service
    pci_cfg_access_lock and an atomic-compatible variant called
    pci_cfg_access_trylock. The former not only blocks user space access as
    before but also waits if access was already locked. The latter service
    just returns false in this case, allowing the caller to resolve the
    conflict instead of raising a BUG.

    Adaptions of the ipr driver were originally written by Brian King.

    Acked-by: Brian King
    Acked-by: Michael S. Tsirkin
    Signed-off-by: Jan Kiszka
    Signed-off-by: Jesse Barnes

    Jan Kiszka
     
  • This patch adds a per-pci-device subdirectory in sysfs called:
    /sys/bus/pci/devices//msi_irqs

    This sub-directory exports the set of msi vectors allocated by a given
    pci device, by creating a numbered sub-directory for each vector beneath
    msi_irqs. For each vector various attributes can be exported.
    Currently the only attribute is called mode, which tracks the
    operational mode of that vector (msi vs. msix)

    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Jesse Barnes

    Neil Horman
     

01 Nov, 2011

1 commit

  • The ats and sroiv members of 'struct pci_dev' are required
    for the ATS code already, even without IOV support compiled
    in. So depend on ATS here. This is fine with PCI_IOV too
    because it selects PCI_ATS. Also the prototypes for ATS
    need to be available for PCI_ATS.

    Reported-by: Randy Dunlap
    Signed-off-by: Joerg Roedel
    Signed-off-by: Jesse Barnes

    Joerg Roedel
     

29 Oct, 2011

1 commit

  • * 'next-rebase' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci:
    PCI: Clean-up MPS debug output
    pci: Clamp pcie_set_readrq() when using "performance" settings
    PCI: enable MPS "performance" setting to properly handle bridge MPS
    PCI: Workaround for Intel MPS errata
    PCI: Add support for PASID capability
    PCI: Add implementation for PRI capability
    PCI: Export ATS functions to modules
    PCI: Move ATS implementation into own file
    PCI / PM: Remove unnecessary error variable from acpi_dev_run_wake()
    PCI hotplug: acpiphp: Prevent deadlock on PCI-to-PCI bridge remove
    PCI / PM: Extend PME polling to all PCI devices
    PCI quirk: mmc: Always check for lower base frequency quirk for Ricoh 1180:e823
    PCI: Make pci_setup_bridge() non-static for use by arch code
    x86: constify PCI raw ops structures
    PCI: Add quirk for known incorrect MPSS
    PCI: Add Solarflare vendor ID and SFC4000 device IDs

    Linus Torvalds
     

15 Oct, 2011

2 commits

  • The land of PCI power management is a land of sorrow and ugliness,
    especially in the area of signaling events by devices. There are
    devices that set their PME Status bits, but don't really bother
    to send a PME message or assert PME#. There are hardware vendors
    who don't connect PME# lines to the system core logic (they know
    who they are). There are PCI Express Root Ports that don't bother
    to trigger interrupts when they receive PME messages from the devices
    below. There are ACPI BIOSes that forget to provide _PRW methods for
    devices capable of signaling wakeup. Finally, there are BIOSes that
    do provide _PRW methods for such devices, but then don't bother to
    call Notify() for those devices from the corresponding _Lxx/_Exx
    GPE-handling methods. In all of these cases the kernel doesn't have
    a chance to receive a proper notification that it should wake up a
    device, so devices stay in low-power states forever. Worse yet, in
    some cases they continuously send PME Messages that are silently
    ignored, because the kernel simply doesn't know that it should clear
    the device's PME Status bit.

    This problem was first observed for "parallel" (non-Express) PCI
    devices on add-on cards and Matthew Garrett addressed it by adding
    code that polls PME Status bits of such devices, if they are enabled
    to signal PME, to the kernel. Recently, however, it has turned out
    that PCI Express devices are also affected by this issue and that it
    is not limited to add-on devices, so it seems necessary to extend
    the PME polling to all PCI devices, including PCI Express and planar
    ones. Still, it would be wasteful to poll the PME Status bits of
    devices that are known to receive proper PME notifications, so make
    the kernel (1) poll the PME Status bits of all PCI and PCIe devices
    enabled to signal PME and (2) disable the PME Status polling for
    devices for which correct PME notifications are received.

    Tested-by: Sarah Sharp
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     
  • The "powernv" platform of the powerpc architecture needs to assign PCI
    resources using a specific algorithm to fit some HW constraints of
    the IBM "IODA" architecture (related to the ability to create error
    handling domains that encompass specific segments of MMIO space).

    For doing so, it wants to call pci_setup_bridge() from architecture
    specific resource management in order to configure bridges after all
    resources have been assigned. So make it non-static.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Jesse Barnes

    Benjamin Herrenschmidt
     

08 Oct, 2011

1 commit


05 Oct, 2011

1 commit

  • Add the ability to disable PCI-E MPS turning and using the BIOS
    configured MPS defaults. Due to the number of issues recently
    discovered on some x86 chipsets, make this the default behavior.

    Also, add the option for peer to peer DMA MPS configuration. Peer to
    peer DMA is outside the scope of this patch, but MPS configuration could
    prevent it from working by having the MPS on one root port different
    than the MPS on another. To work around this, simply make the system
    wide MPS the smallest possible value (128B).

    Signed-off-by: Jon Mason
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds

    Jon Mason
     

24 Sep, 2011

2 commits


02 Aug, 2011

2 commits

  • Currently pci-bridges are allocated enough resources to satisfy their immediate
    requirements. Any additional resource-requests fail if additional free space,
    contiguous to the one already allocated, is not available. This behavior is not
    reasonable since sufficient contiguous resources, that can satisfy the request,
    are available at a different location.

    This patch provides the ability to expand and relocate a allocated resource.

    v2: Changelog: Fixed size calculation in pci_reassign_resource()
    v3: Changelog : Split this patch. The resource.c changes are already
    upstream. All the pci driver changes are in here.

    Signed-off-by: Ram Pai
    Signed-off-by: Jesse Barnes

    Ram Pai
     
  • On a given PCI-E fabric, each device, bridge, and root port can have a
    different PCI-E maximum payload size. There is a sizable performance
    boost for having the largest possible maximum payload size on each PCI-E
    device. However, if improperly configured, fatal bus errors can occur.
    Thus, it is important to ensure that PCI-E payloads sends by a device
    are never larger than the MPS setting of all devices on the way to the
    destination.

    This can be achieved two ways:

    - A conservative approach is to use the smallest common denominator of
    the entire tree below a root complex for every device on that fabric.

    This means for example that having a 128 bytes MPS USB controller on one
    leg of a switch will dramatically reduce performances of a video card or
    10GE adapter on another leg of that same switch.

    It also means that any hierarchy supporting hotplug slots (including
    expresscard or thunderbolt I suppose, dbl check that) will have to be
    entirely clamped to 128 bytes since we cannot predict what will be
    plugged into those slots, and we cannot change the MPS on a "live"
    system.

    - A more optimal way is possible, if it falls within a couple of
    constraints:
    * The top-level host bridge will never generate packets larger than the
    smallest TLP (or if it can be controlled independently from its MPS at
    least)
    * The device will never generate packets larger than MPS (which can be
    configured via MRRS)
    * No support of direct PCI-E PCI-E transfers between devices without
    some additional code to specifically deal with that case

    Then we can use an approach that basically ignores downstream requests
    and focuses exclusively on upstream requests. In that case, all we need
    to care about is that a device MPS is no larger than its parent MPS,
    which allows us to keep all switches/bridges to the max MPS supported by
    their parent and eventually the PHB.

    In this case, your USB controller would no longer "starve" your 10GE
    Ethernet and your hotplug slots won't affect your global MPS.
    Additionally, the hotplugged devices themselves can be configured to a
    larger MPS up to the value configured in the hotplug bridge.

    To choose between the two available options, two PCI kernel boot args
    have been added to the PCI calls. "pcie_bus_safe" will provide the
    former behavior, while "pcie_bus_perf" will perform the latter behavior.
    By default, the latter behavior is used.

    NOTE: due to the location of the enablement, each arch will need to add
    calls to this function. This patch only enables x86.

    This patch includes a number of changes recommended by Benjamin
    Herrenschmidt.

    Tested-by: Jordan_Hargrave@dell.com
    Signed-off-by: Jon Mason
    Signed-off-by: Jesse Barnes

    Jon Mason
     

30 Jul, 2011

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI: remove printks about disabled bridge windows
    PCI: fold pci_calc_resource_flags() into decode_bar()
    PCI: treat mem BAR type "11" (reserved) as 32-bit, not 64-bit, BAR
    PCI: correct pcie_set_readrq write size
    PCI: pciehp: change wait time for valid configuration access
    x86/PCI: Preserve existing pci=bfsort whitelist for Dell systems
    PCI: ARI is a PCIe v2 feature
    x86/PCI: quirks: Use pci_dev->revision
    PCI: Make the struct pci_dev * argument of pci_fixup_irqs const.
    PCI hotplug: cpqphp: use pci_dev->vendor
    PCI hotplug: cpqphp: use pci_dev->subsystem_{vendor|device}
    x86/PCI: config space accessor functions should not ignore the segment argument
    PCI: Assign values to 'pci_obff_signal_type' enumeration constants
    x86/PCI: reduce severity of host bridge window conflict warnings
    PCI: enumerate the PCI device only removed out PCI hieratchy of OS when re-scanning PCI
    PCI: PCIe AER: add aer_recover_queue
    x86/PCI: select direct access mode for mmconfig option
    PCI hotplug: Rename is_ejectable which also exists in dock.c

    Linus Torvalds
     

27 Jul, 2011

1 commit

  • This allows us to move duplicated code in
    (atomic_inc_not_zero() for now) to

    Signed-off-by: Arun Sharma
    Reviewed-by: Eric Dumazet
    Cc: Ingo Molnar
    Cc: David Miller
    Cc: Eric Dumazet
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arun Sharma
     

23 Jul, 2011

1 commit

  • …/git/tip/linux-2.6-tip

    * 'core-iommu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    iommu/core: Fix build with INTR_REMAP=y && CONFIG_DMAR=n
    iommu/amd: Don't use MSI address range for DMA addresses
    iommu/amd: Move missing parts to drivers/iommu
    iommu: Move iommu Kconfig entries to submenu
    x86/ia64: intel-iommu: move to drivers/iommu/
    x86: amd_iommu: move to drivers/iommu/
    msm: iommu: move to drivers/iommu/
    drivers: iommu: move to a dedicated folder
    x86/amd-iommu: Store device alias as dev_data pointer
    x86/amd-iommu: Search for existind dev_data before allocting a new one
    x86/amd-iommu: Allow dev_data->alias to be NULL
    x86/amd-iommu: Use only dev_data in low-level domain attach/detach functions
    x86/amd-iommu: Use only dev_data for dte and iotlb flushing routines
    x86/amd-iommu: Store ATS state in dev_data
    x86/amd-iommu: Store devid in dev_data
    x86/amd-iommu: Introduce global dev_data_list
    x86/amd-iommu: Remove redundant device_flush_dte() calls
    iommu-api: Add missing header file

    Fix up trivial conflicts (independent additions close to each other) in
    drivers/Makefile and include/linux/pci.h

    Linus Torvalds
     

22 Jul, 2011

2 commits

  • Aside of the usual motivation for constification, this function has a
    history of being abused a hook for interrupt and other fixups so I turned
    this function const ages ago in the MIPS code but it should be done
    treewide.

    Due to function pointer passing in varous places a few other functions
    had to be constified as well.

    Signed-off-by: Ralf Baechle
    To: Anton Vorontsov
    To: Chris Metcalf
    To: Colin Cross
    Acked-by: "David S. Miller"
    To: Eric Miao
    To: Erik Gilling
    Acked-by: Guan Xuetao
    To: "H. Peter Anvin"
    To: Imre Kaloz
    To: Ingo Molnar
    To: Ivan Kokshaysky
    To: Jesse Barnes
    To: Krzysztof Halasa
    To: Lennert Buytenhek
    To: Matt Turner
    To: Nicolas Pitre
    To: Olof Johansson
    Acked-by: Paul Mundt
    To: Richard Henderson
    To: Russell King
    To: Thomas Gleixner
    Cc: Andrew Morton
    Cc: linux-alpha@vger.kernel.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-pci@vger.kernel.org
    Cc: linux-sh@vger.kernel.org
    Cc: linux-tegra@vger.kernel.org
    Cc: sparclinux@vger.kernel.org
    Cc: x86@kernel.org
    Signed-off-by: Jesse Barnes

    Ralf Baechle
     
  • 'pci_obff_signal_type' is passed between drivers and the kernel API.
    This patch explicitly assigns values to the enumeration type's constants
    which aids in detecting any future changes or additions that would break
    the kernel's ABI.

    No functional change.

    Signed-off-by: Myron Stowe
    Signed-off-by: Jesse Barnes

    Myron Stowe
     

21 Jun, 2011

1 commit

  • This should ease finding similarities with different platforms,
    with the intention of solving problems once in a generic framework
    which everyone can use.

    Note: to move intel-iommu.c, the declaration of pci_find_upstream_pcie_bridge()
    has to move from drivers/pci/pci.h to include/linux/pci.h. This is handled
    in this patch, too.

    As suggested, also drop DMAR's EXPERIMENTAL tag while we're at it.

    Compile-tested on x86_64.

    Signed-off-by: Ohad Ben-Cohen
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     

08 Jun, 2011

3 commits

  • The generic code always get the device-node in the right place now
    so a single implementation will work for all archs

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Grant Likely
    Acked-by: Michal Simek
    Acked-by: Jesse Barnes

    Benjamin Herrenschmidt
     
  • All archs do more or less the same thing now, move it into
    a single generic place.

    I chose pci.h rather than of_pci.h to avoid having to change
    all call-sites to include the later.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Michal Simek
    Acked-by: Grant Likely
    Acked-by: Jesse Barnes

    Benjamin Herrenschmidt
     
  • powerpc has two different ways of matching PCI devices to their
    corresponding OF node (if any) for historical reasons. The ppc64 one
    does a scan looking for matching bus/dev/fn, while the ppc32 one does a
    scan looking only for matching dev/fn on each level in order to be
    agnostic to busses being renumbered (which Linux does on some
    platforms).

    This removes both and instead moves the matching code to the PCI core
    itself. It's the most logical place to do it: when a pci_dev is created,
    we know the parent and thus can do a single level scan for the matching
    device_node (if any).

    The benefit is that all archs now get the matching for free. There's one
    hook the arch might want to provide to match a PHB bus to its device
    node. A default weak implementation is provided that looks for the
    parent device device node, but it's not entirely reliable on powerpc for
    various reasons so powerpc provides its own.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Michal Simek
    Acked-by: Jesse Barnes

    Benjamin Herrenschmidt
     

25 May, 2011

1 commit

  • * 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (169 commits)
    drivers/gpu/drm/radeon/atom.c: fix warning
    drm/radeon/kms: bump kms version number
    drm/radeon/kms: properly set num banks for fusion asics
    drm/radeon/kms/atom: move dig phy init out of modesetting
    drm/radeon/kms/cayman: fix typo in register mask
    drm/radeon/kms: fix typo in spread spectrum code
    drm/radeon/kms: fix tile_config value reported to userspace on cayman.
    drm/radeon/kms: fix incorrect comparison in cayman setup code.
    drm/radeon/kms: add wait idle ioctl for eg->cayman
    drm/radeon/cayman: setup hdp to invalidate and flush when asked
    drm/radeon/evergreen/btc/fusion: setup hdp to invalidate and flush when asked
    agp/uninorth: Fix lockups with radeon KMS and >1x.
    drm/radeon/kms: the SS_Id field in the LCD table if for LVDS only
    drm/radeon/kms: properly set the CLK_REF bit for DCE3 devices
    drm/radeon/kms: fixup eDP connector handling
    drm/radeon/kms: bail early for eDP in hotplug callback
    drm/radeon/kms: simplify hotplug handler logic
    drm/radeon/kms: rewrite DP handling
    drm/radeon/kms/atom: add support for setting DP panel mode
    drm/radeon/kms: atombios.h updates for DP panel mode
    ...

    Linus Torvalds
     

22 May, 2011

2 commits


12 May, 2011

3 commits

  • Latency tolerance reporting allows devices to send messages to the root
    complex indicating their latency tolerance for snooped & unsnooped
    memory transactions. Add support for enabling & disabling this
    feature, along with a routine to set the max latencies a device should
    send upstream.

    Signed-off-by: Jesse Barnes

    Jesse Barnes
     
  • OBFF (optimized buffer flush/fill), where supported, can help improve
    energy efficiency by giving devices information about when interrupts
    and other activity will have a reduced power impact. It requires
    support from both the device and system (i.e. not only does the device
    need to respond to OBFF messages, but the platform must be capable of
    generating and routing them to the end point).

    Signed-off-by: Jesse Barnes

    Jesse Barnes
     
  • Add support to allow drivers to enable/disable ID-based ordering. Where
    supported, ID-based ordering can significantly improve the latency of
    individual requests by preventing them from queueing up behind unrelated
    traffic.

    Signed-off-by: Jesse Barnes

    Jesse Barnes
     

04 May, 2011

1 commit

  • So in a lot of modern systems, a GPU will always be below a parent bridge that won't share with any other GPUs. This means VGA arbitration on those GPUs can be controlled by using the bridge routing instead of io/mem decodes.

    The problem is locating which GPUs share which upstream bridges. This patch attempts to identify all the GPUs which can be controlled via bridges, and ones that can't. This patch endeavours to work out the bridge sharing semantics.

    When disabling GPUs via a bridge, it doesn't do irq callbacks or touch the io/mem decodes for the gpu.

    Signed-off-by: Dave Airlie

    Dave Airlie
     

22 Mar, 2011

1 commit

  • We need to distinguish the situation in which ASPM support is
    disabled from the command line or through .config from the situation
    in which it is disabled, because the hardware or BIOS can't handle
    it. In the former case we should not report ASPM support to the BIOS
    through ACPI _OSC, but in the latter case we should do that.

    Introduce pcie_aspm_support_enabled() that can be used by
    acpi_pci_root_add() to determine whether or not it should report ASPM
    support to the BIOS through _OSC.

    Cc: stable@kernel.org
    References: https://bugzilla.kernel.org/show_bug.cgi?id=29722
    References: https://bugzilla.kernel.org/show_bug.cgi?id=20232
    Reported-and-tested-by: Ortwin Glück
    Reviewed-by: Kenji Kaneshige
    Tested-by: Kenji Kaneshige
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

19 Mar, 2011

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI: label: remove #include of ACPI header to avoid warnings
    PCI: label: Fix compilation error when CONFIG_ACPI is unset
    PCI: pre-allocate additional resources to devices only after successful allocation of essential resources.
    PCI: introduce reset_resource()
    PCI: data structure agnostic free list function
    PCI: refactor io size calculation code
    PCI: do not create quirk I/O regions below PCIBIOS_MIN_IO for ICH
    PCI hotplug: acpiphp: set current_state to D0 in register_slot
    PCI: Export ACPI _DSM provided firmware instance number and string name to sysfs
    PCI: add more checking to ICH region quirks
    PCI: aer-inject: Override PCIe AER Mask Registers
    PCI: fix tlan build when CONFIG_PCI is not enabled
    PCI: remove quirk for pre-production systems
    PCI: Avoid potential NULL pointer dereference in pci_scan_bridge
    PCI/lpc: irq and pci_ids patch for Intel DH89xxCC DeviceIDs
    PCI: sysfs: Fix failure path for addition of "vpd" attribute

    Linus Torvalds