The patch titled revert gregkh-pci-msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix has been added to the -mm tree. Its filename is revert-gregkh-pci-msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: revert gregkh-pci-msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix From: Andrew Morton <akpm@xxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/pci/msi.c | 46 +++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff -puN drivers/pci/msi.c~revert-gregkh-pci-msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix drivers/pci/msi.c --- a/drivers/pci/msi.c~revert-gregkh-pci-msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix +++ a/drivers/pci/msi.c @@ -901,28 +901,6 @@ static int msix_capability_init(struct p } /** - * pci_msi_supported - check whether MSI may be enabled on device - * @dev: pointer to the pci_dev data structure of MSI device function - * - * Check parent busses for MSI flags, or disable except - * if forced. - **/ -static -int pci_msi_supported(struct pci_dev * dev) -{ - struct pci_bus *bus; - - if (!pci_msi_enable || !dev || dev->no_msi) - return -1; - - for (bus = dev->bus; bus; bus = bus->parent) - if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI) - return -1; - - return 0; -} - -/** * pci_enable_msi - configure device's MSI capability structure * @dev: pointer to the pci_dev data structure of MSI device function * @@ -934,11 +912,19 @@ int pci_msi_supported(struct pci_dev * d **/ int pci_enable_msi(struct pci_dev* dev) { - int pos, temp, status; + struct pci_bus *bus; + int pos, temp, status = -EINVAL; u16 control; - if (pci_msi_supported(dev) < 0) - return -EINVAL; + if (!pci_msi_enable || !dev) + return status; + + if (dev->no_msi) + return status; + + for (bus = dev->bus; bus; bus = bus->parent) + if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI) + return -EINVAL; temp = dev->irq; @@ -1148,14 +1134,22 @@ static int reroute_msix_table(int head, **/ int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec) { + struct pci_bus *bus; int status, pos, nr_entries, free_vectors; int i, j, temp; u16 control; unsigned long flags; - if (!entries || pci_msi_supported(dev) < 0) + if (!pci_msi_enable || !dev || !entries) return -EINVAL; + if (dev->no_msi) + return -EINVAL; + + for (bus = dev->bus; bus; bus = bus->parent) + if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI) + return -EINVAL; + status = msi_init(); if (status < 0) return status; _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch genirq-ia64-cleanup.patch zvc-zone_reclaim-leave-1%-of-unmapped-pagecache-pages-for-file-i-o.patch make-more-file_operation-structs-static.patch sparc-i8042-build-fix.patch sparc-resource-warning-fixes.patch lockdep-add-disable-enable_irq_lockdep-api.patch lockdep-irqtrace-subsystem-x86_64-support.patch forcedeth-typecast-cleanup.patch sched-clean-up-fallout-of-recent-changes.patch disable-debugging-version-of-write_lock.patch acpi-asus-s3-resume-fix-fix.patch sony_apci-resume.patch kauditd_thread-warning-fix.patch git-geode-fixup.patch git-gfs2.patch git-gfs2-fixup.patch gfs2-get_sb_dev-fix.patch git-ia64.patch git-ia64-fixup.patch git-klibc.patch git-hdrcleanup-vs-git-klibc-on-ia64.patch git-hdrcleanup-vs-git-klibc-on-ia64-2.patch git-libata-all.patch sata-is-bust-on-s390.patch git-netdev-all-fixup.patch 8139cp-printk-fix.patch git-e1000.patch git-e1000-fixup.patch e1000-irq-naming-update.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch af_unix-datagram-getpeersec-fix.patch git-pcmcia-fixup.patch git-sas.patch serial-8250-sysrq-deadlock-fix.patch serial-fix-uart_bug_txen-test.patch revert-gregkh-pci-pci-test-that-drivers-properly-call-pci_set_master.patch revert-gregkh-pci-msi-drop-pci_msi_quirk.patch revert-gregkh-pci-msi-stop-inheriting-bus-flags-and-check-root-chipset-bus-flags-instead.patch revert-gregkh-pci-msi-factorize-common-msi-detection-code-from-pci_enable_msi-and-msix.patch revert-gregkh-pci-msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capabality.patch revert-gregkh-pci-msi-rename-pci_cap_id_ht_irqconf-into-pci_cap_id_ht.patch revert-gregkh-pci-msi-merge-existing-msi-disabling-quirks.patch revert-VIA-quirk-fixup-additional-PCI-IDs.patch revert-PCI-quirk-VIA-IRQ-fixup-should-only-run-for-VIA-southbridges.patch git-scsi-misc.patch git-scsi-misc-fixup.patch areca-raid-linux-scsi-driver.patch git-scsi-target-fixup.patch pm-usb-hcds-use-pm_event_prethaw-fix.patch kill-usb-kconfig-warning.patch git-supertrak-fixup.patch bcm43xx-opencoded-locking.patch sleazy-fpu-feature-x86_64-support-fix.patch adix-tree-rcu-lockless-readside-update-tidy.patch mm-tracking-shared-dirty-pages-checks.patch mm-tracking-shared-dirty-pages-wimp.patch acx1xx-wireless-driver.patch tiacx-pci-build-fix.patch tiacx-ia64-fix.patch deprecate-smbfs-in-favour-of-cifs.patch edac-new-opteron-athlon64-memory-controller-driver-tidy.patch valid_mmap_phys_addr_range-cleanup.patch x86-microcode-microcode-driver-cleanup-tidy.patch x86-microcode-add-sysfs-and-hotplug-support-fix.patch reiserfs-on-demand-bitmap-loading.patch per-task-delay-accounting-taskstats-interface.patch per-task-delay-accounting-proc-export-of-aggregated-block-i-o-delays.patch delay-accounting-taskstats-interface-send-tgid-once.patch swap_prefetch-vs-zoned-counters.patch ecryptfs-mmap-operations.patch ecryptfs-alpha-build-fix.patch ecryptfs-more-elegant-aes-key-size-manipulation.patch ecryptfs-get_sb_dev-fix.patch namespaces-add-nsproxy-dont-include-compileh.patch namespaces-utsname-switch-to-using-uts-namespaces.patch namespaces-utsname-use-init_utsname-when-appropriate.patch namespaces-utsname-implement-utsname-namespaces.patch namespaces-utsname-sysctl-hack.patch ipc-namespace-core.patch task-watchers-task-watchers.patch task-watchers-add-support-for-per-task-watchers.patch readahead-sysctl-parameters-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch hpt3xx-rework-rate-filtering-tidy.patch vt-remove-vt-specific-declarations-and-definitions-from-fix.patch tty-remove-include-of-screen_infoh-from-ttyh-fix.patch md-oops-workaround.patch genirq-convert-the-i386-architecture-to-irq-chips.patch genirq-x86_64-irq-reenable-migrating-irqs-to-other-cpus.patch genirq-msi-simplify-msi-enable-and-disable.patch genirq-ia64-irq-dynamic-irq-support.patch genirq-i386-irq-remove-the-msi-assumption-that-irq-==-vector.patch srcu-rcu-variant-permitting-read-side-blocking.patch srcu-add-srcu-operations-to-rcutorture.patch srcu-2-add-srcu-operations-to-rcutorture.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch revert-tty-buffering-comment-out-debug-code.patch slab-leaks3-default-y.patch x86-kmap_atomic-debugging.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html