1. 29 5月, 2014 1 次提交
    • B
      Merge branches 'pci/host-exynos', 'pci/host-rcar' and 'pci/amd-numa' into next · 79d458bf
      Bjorn Helgaas 提交于
      * pci/host-exynos:
        PCI: exynos: Remove unnecessary OOM messages
      
      * pci/host-rcar:
        PCI: rcar: Add gen2 device tree support
        PCI: rcar: Add R-Car PCIe device tree bindings
        PCI: rcar: Add MSI support for PCIe
        PCI: rcar: Add Renesas R-Car PCIe driver
        PCI: rcar: Use new OF interrupt mapping when possible
      
      * pci/amd-numa:
        x86/PCI: Clean up and mark early_root_info_init() as deprecated
        x86/PCI: Work around AMD Fam15h BIOSes that fail to provide _PXM
        x86/PCI: Warn if we have to "guess" host bridge node information
      79d458bf
  2. 28 5月, 2014 6 次提交
  3. 27 5月, 2014 5 次提交
  4. 24 5月, 2014 15 次提交
  5. 23 5月, 2014 2 次提交
  6. 22 5月, 2014 2 次提交
    • S
      x86/PCI: Work around AMD Fam15h BIOSes that fail to provide _PXM · 94d4bb5b
      Suravee Suthikulpanit 提交于
      The BIOS is supposed to provide ACPI _PXM methods for PCI host bridges if
      it cares about platform topology.  But some BIOSes do not, so add Fam15h
      to the list of CPUs for which we fall back to reading node numbers from the
      hardware.
      
      Note that pci_acpi_scan_root() warns about the BIOS bug if we use this
      information because (1) the hardware node numbers are not necessarily
      compatible with other logical node numbers from ACPI, and (2) the lack of
      _PXM forces OS updates that would not otherwise be required.
      
      [bhelgaas: changelog, comments]
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=72051Tested-by: NAravind Gopalakrishnan <Aravind.Gopalakrishnan@amd.com>
      Signed-off-by: NSuravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
      Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: Robert Richter <rric@kernel.org>
      Cc: Daniel J Blueman <daniel@numascale.com>
      Cc: Andreas Herrmann <herrmann.der.user@googlemail.com>
      94d4bb5b
    • M
      x86/PCI: Warn if we have to "guess" host bridge node information · 33673101
      Myron Stowe 提交于
      The vast majority of platforms are not supplying ACPI _PXM (proximity)
      information corresponding to host bridge (PNP0A03/PNP0A08) devices
      resulting in sysfs "numa_node" values of -1 (NUMA_NO_NODE):
      
        # for i in /sys/devices/pci0000\:00/*/numa_node; do cat $i; done | uniq
        -1
      
        # find /sys/ -name "numa_node" | while read fname; do cat $fname; \
          done | uniq
        -1
      
      AMD based platforms provide a fall-back for this situation via amd_bus.c.
      These platforms snoop out the information by directly reading specific
      registers from the Northbridge and caching them via alloc_pci_root_info().
      
      Later during boot processing when host bridges are discovered -
      pci_acpi_scan_root() - the kernel looks for their corresponding ACPI _PXM
      method - drivers/acpi/numa.c::acpi_get_node().  If the BIOS supplied a _PXM
      method then that node (proximity) value is associated.  If the BIOS did not
      supply a _PXM method *and* the platform is AMD-based, the fall-back cached
      values obtained directly from the Northbridge are used; otherwise,
      "NUMA_NO_NODE" is associated.
      
      There are a number of issues with this fall-back mechanism the most notable
      being that amd_bus.c extracts a 3-bit number from a CPU register and uses
      it as the node number.  The node numbers used by Linux are logical and
      there's no reason they need to be identical to settings in the CPU
      registers.  So if we have some node information obtained in the normal way
      (from _PXM, SLIT, SRAT, etc.) and some from amd_bus.c, there's no reason to
      believe they will be compatible.
      
      This patch warns when this situation occurs:
      
        pci_root PNP0A08:00: [Firmware Bug]: no _PXM; falling back to node 0 from hardware (may be inconsistent with ACPI node numbers)
      
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=72051Signed-off-by: NMyron Stowe <myron.stowe@redhat.com>
      Signed-off-by: NSuravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      33673101
  7. 21 5月, 2014 4 次提交
  8. 01 5月, 2014 2 次提交
  9. 30 4月, 2014 3 次提交
    • B
      Merge branches 'pci/hotplug', 'pci/msi', 'pci/virtualization' and 'pci/misc' into next · 518a6a34
      Bjorn Helgaas 提交于
      * pci/hotplug:
        PCI: rphahp: Fix endianess issues
        PCI: Allow hotplug service drivers to operate in polling mode
        PCI: pciehp: Acknowledge spurious "cmd completed" event
        PCI: pciehp: Use PCI_EXP_SLTCAP_PSN define
        PCI: hotplug: Remove unnecessary "dev->bus" test
      
      * pci/msi:
        GenWQE: Use pci_enable_msi_exact() instead of pci_enable_msi_block()
        PCI/MSI: Simplify populate_msi_sysfs()
        PCI/portdrv: Use pci_enable_msix_exact() instead of pci_enable_msix()
      
      * pci/virtualization:
        PCI: Add Patsburg (X79) to Intel PCH root port ACS quirk
      
      * pci/misc:
        PCI: Fix use of uninitialized MPS value
        PCI: Remove dead code
        MAINTAINERS: Add arch/x86/kernel/quirks.c to PCI file patterns
        PCI: Remove unnecessary __ref annotations
        PCI: Fail new_id for vendor/device values already built into driver
        PCI: Add new ID for Intel GPU "spurious interrupt" quirk
        PCI: Update my email address
        PCI: Fix incorrect vgaarb conditional in WARN_ON()
        PCI: Use designated initialization in PCI_VDEVICE
        PCI: Remove old serial device IDs
        PCI: Remove unnecessary includes of <linux/init.h>
        powerpc/PCI: Fix NULL dereference in sys_pciconfig_iobase() list traversal
      518a6a34
    • B
      PCI: Fix use of uninitialized MPS value · 1e358f94
      Bjorn Helgaas 提交于
      If "pcie_bus_config == PCIE_BUS_PERFORMANCE", we don't initialize "smpss",
      so we pass a pointer to garbage into pcie_bus_configure_set(), where we
      compute "mps" based on the garbage.  We then pass the garbage "mps" to
      pcie_write_mps(), which ignores it in the PCIE_BUS_PERFORMANCE case.
      
      Coverity isn't smart enough to deduce that we ignore the garbage (it's a
      lot to expect from a human, too), so initialize "smpss" to a safe value in
      all cases.
      
      Found by Coverity (CID 146454).
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      1e358f94
    • B
      PCI: Remove dead code · efdd4070
      Bjorn Helgaas 提交于
      "pdev" can never be NULL here, so remove the test.
      
      Found by Coverity (CID 744313).
      Signed-off-by: NBjorn Helgaas <bhelgaas@google.com>
      efdd4070