Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Apr 2009 16:47:12 +0000 (09:47 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 1 Apr 2009 16:47:12 +0000 (09:47 -0700)
* 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (88 commits)
  PCI: fix HT MSI mapping fix
  PCI: don't enable too much HT MSI mapping
  x86/PCI: make pci=lastbus=255 work when acpi is on
  PCI: save and restore PCIe 2.0 registers
  PCI: update fakephp for bus_id removal
  PCI: fix kernel oops on bridge removal
  PCI: fix conflict between SR-IOV and config space sizing
  powerpc/PCI: include pci.h in powerpc MSI implementation
  PCI Hotplug: schedule fakephp for feature removal
  PCI Hotplug: rename legacy_fakephp to fakephp
  PCI Hotplug: restore fakephp interface with complete reimplementation
  PCI: Introduce /sys/bus/pci/devices/.../rescan
  PCI: Introduce /sys/bus/pci/devices/.../remove
  PCI: Introduce /sys/bus/pci/rescan
  PCI: Introduce pci_rescan_bus()
  PCI: do not enable bridges more than once
  PCI: do not initialize bridges more than once
  PCI: always scan child buses
  PCI: pci_scan_slot() returns newly found devices
  PCI: don't scan existing devices
  ...

Fix trivial append-only conflict in Documentation/feature-removal-schedule.txt

12 files changed:
1  2 
Documentation/feature-removal-schedule.txt
Documentation/kernel-parameters.txt
arch/x86/kernel/apic/io_apic.c
arch/x86/kernel/pci-dma.c
arch/x86/pci/fixup.c
drivers/pci/intel-iommu.c
drivers/pci/pci-driver.c
drivers/pci/pci.c
drivers/pci/pci.h
include/linux/acpi.h
include/linux/pci.h
include/linux/pci_ids.h

@@@ -376,19 -346,34 +376,51 @@@ Why:    See commits 129f8ae9b1b5be94517da7
        cause the thermal throttling not to happen at the right time.
  Who:  Dave Jones <davej@redhat.com>, Matthew Garrett <mjg@redhat.com>
  
 +-----------------------------
 +
 +What: __do_IRQ all in one fits nothing interrupt handler
 +When: 2.6.32
 +Why:  __do_IRQ was kept for easy migration to the type flow handlers.
 +      More than two years of migration time is enough.
 +Who:  Thomas Gleixner <tglx@linutronix.de>
 +
 +-----------------------------
 +
 +What: obsolete generic irq defines and typedefs
 +When: 2.6.30
 +Why:  The defines and typedefs (hw_interrupt_type, no_irq_type, irq_desc_t)
 +      have been kept around for migration reasons. After more than two years
 +      it's time to remove them finally
 +Who:  Thomas Gleixner <tglx@linutronix.de>
++
+ ---------------------------
+ What: fakephp and associated sysfs files in /sys/bus/pci/slots/
+ When: 2011
+ Why:  In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to
+       represent a machine's physical PCI slots. The change in semantics
+       had userspace implications, as the hotplug core no longer allowed
+       drivers to create multiple sysfs files per physical slot (required
+       for multi-function devices, e.g.). fakephp was seen as a developer's
+       tool only, and its interface changed. Too late, we learned that
+       there were some users of the fakephp interface.
+       In 2.6.30, the original fakephp interface was restored. At the same
+       time, the PCI core gained the ability that fakephp provided, namely
+       function-level hot-remove and hot-add.
+       Since the PCI core now provides the same functionality, exposed in:
+               /sys/bus/pci/rescan
+               /sys/bus/pci/devices/.../remove
+               /sys/bus/pci/devices/.../rescan
+       there is no functional reason to maintain fakephp as well.
+       We will keep the existing module so that 'modprobe fakephp' will
+       present the old /sys/bus/pci/slots/... interface for compatibility,
+       but users are urged to migrate their applications to the API above.
+       After a reasonable transition period, we will remove the legacy
+       fakephp interface.
+ Who:  Alex Chiang <achiang@hp.com>
Simple merge
@@@ -3465,9 -3504,16 +3465,13 @@@ int arch_setup_msi_irqs(struct pci_dev 
        int ret, sub_handle;
        struct msi_desc *msidesc;
        unsigned int irq_want;
 -
 -#ifdef CONFIG_INTR_REMAP
 -      struct intel_iommu *iommu = 0;
 +      struct intel_iommu *iommu = NULL;
        int index = 0;
 -#endif
  
+       /* x86 doesn't support multiple MSI yet */
+       if (type == PCI_CAP_ID_MSI && nvec > 1)
+               return 1;
        irq_want = nr_irqs_gsi;
        sub_handle = 0;
        list_for_each_entry(msidesc, &dev->msi_list, list) {
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge