The patch titled Switch fdomain to the pci_get API has been removed from the -mm tree. Its filename was switch-fdomain-to-the-pci_get-api.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: Switch fdomain to the pci_get API From: Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> Doesn't make the hardware hot pluggable but does ensure the driver won't crash when another device is hot-unplugged at the wrong moment. Soon I propose to deprecate pci_find_device() and some of its friends. Signed-off-by: Alan Cox <alan@xxxxxxxxxx> Cc: James Bottomley <James.Bottomley@xxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- drivers/scsi/fdomain.c | 30 ++++++++++++++++++++---------- 1 files changed, 20 insertions(+), 10 deletions(-) diff -puN drivers/scsi/fdomain.c~switch-fdomain-to-the-pci_get-api drivers/scsi/fdomain.c --- a/drivers/scsi/fdomain.c~switch-fdomain-to-the-pci_get-api +++ a/drivers/scsi/fdomain.c @@ -387,6 +387,7 @@ static void __iomem * bios_mem; static int bios_major; static int bios_minor; static int PCI_bus; +static struct pci_dev *PCI_dev; static int Quantum; /* Quantum board variant */ static int interrupt_level; static volatile int in_command; @@ -816,9 +817,10 @@ static int fdomain_pci_bios_detect( int PCI_DEVICE_ID_FD_36C70 ); #endif - if ((pdev = pci_find_device(PCI_VENDOR_ID_FD, PCI_DEVICE_ID_FD_36C70, pdev)) == NULL) + if ((pdev = pci_get_device(PCI_VENDOR_ID_FD, PCI_DEVICE_ID_FD_36C70, pdev)) == NULL) return 0; - if (pci_enable_device(pdev)) return 0; + if (pci_enable_device(pdev)) + goto fail; #if DEBUG_DETECT printk( "scsi: <fdomain> TMC-3260 detect:" @@ -835,7 +837,7 @@ static int fdomain_pci_bios_detect( int pci_irq = pdev->irq; if (!request_region( pci_base, 0x10, "fdomain" )) - return 0; + goto fail; /* Now we have the I/O base address and interrupt from the PCI configuration registers. */ @@ -852,17 +854,22 @@ static int fdomain_pci_bios_detect( int if (!fdomain_is_valid_port(pci_base)) { printk(KERN_ERR "scsi: <fdomain> PCI card detected, but driver not loaded (invalid port)\n" ); release_region(pci_base, 0x10); - return 0; + goto fail; } /* Fill in a few global variables. Ugh. */ bios_major = bios_minor = -1; PCI_bus = 1; + PCI_dev = pdev; Quantum = 0; bios_base = 0; return 1; +fail: + pci_dev_put(pdev); + return 0; } + #endif struct Scsi_Host *__fdomain_16x0_detect(struct scsi_host_template *tpnt ) @@ -913,8 +920,7 @@ struct Scsi_Host *__fdomain_16x0_detect( if (setup_called) { printk(KERN_ERR "scsi: <fdomain> Bad LILO/INSMOD parameters?\n"); } - release_region(port_base, 0x10); - return NULL; + goto fail; } if (this_id) { @@ -946,8 +952,7 @@ struct Scsi_Host *__fdomain_16x0_detect( /* Log IRQ with kernel */ if (!interrupt_level) { printk(KERN_ERR "scsi: <fdomain> Card Detected, but driver not loaded (no IRQ)\n" ); - release_region(port_base, 0x10); - return NULL; + goto fail; } else { /* Register the IRQ with the kernel */ @@ -968,11 +973,14 @@ struct Scsi_Host *__fdomain_16x0_detect( printk(KERN_ERR " Send mail to faith@xxxxxxx\n" ); } printk(KERN_ERR "scsi: <fdomain> Detected, but driver not loaded (IRQ)\n" ); - release_region(port_base, 0x10); - return NULL; + goto fail; } } return shpnt; +fail: + pci_dev_put(pdev); + release_region(port_base, 0x10); + return NULL; } static int fdomain_16x0_detect(struct scsi_host_template *tpnt) @@ -1718,6 +1726,8 @@ static int fdomain_16x0_release(struct S free_irq(shpnt->irq, shpnt); if (shpnt->io_port && shpnt->n_io_port) release_region(shpnt->io_port, shpnt->n_io_port); + if (PCI_bus) + pci_dev_put(PCI_dev); return 0; } _ Patches currently in -mm which might be from alan@xxxxxxxxxxxxxxxxxxx are origin.patch char-correct-pci_get_device-changes.patch drivers-ide-pci-genericc-re-add-the-__setupall-generic-ide.patch pci-declare-pci_get_device_reverse.patch intel-fb-switch-to-pci_get-api.patch git-libata-all.patch ahci-readability-tweak.patch libata-sff-allow-for-wacky-systems.patch libata-revamp-blacklist-support-to-allow-multiple-kinds.patch pata_marvell-marvell-6101-6145-pata-driver.patch via-pata-controller-xfer-fixes.patch ahci-ati-sb600-sata-support-for-various-modes.patch git-mtd.patch resend-iphase-64bit-cleanup.patch perle-multimodem-card-pci-ras-detection.patch make-sure-uart-is-powered-up-when-dumping-mctrl-status.patch git-scsi-rc-fixes.patch drivers-scsi-ncr5380c-replacing-yield-with-a.patch x86-resend-remove-last-two-pci_find-offenders-in-the.patch alpha-switch-to-pci_get-api.patch edac-new-opteron-athlon64-memory-controller-driver.patch serial-uartlite-driver.patch serial-uartlite-driver-fix.patch honour-mnt_noexec-for-access.patch i2o-more-error-checking.patch ia64-fix-allmodconfig-build.patch ide-complete-switch-to-pci_get.patch via82cxxx-handle-error-condition-properly.patch lockdep-fix-ide-proc-interaction.patch fix-ide-cs-hang-after-device-removal.patch mxser-correct-tty-driver-name.patch pci-mxser-pci-refcounts.patch mxser-make-an-experimental-clone.patch char-mxser_new-correct-include-file.patch char-mxser_new-upgrade-to-191.patch char-mxser_new-rework-to-allow-dynamic-structs.patch char-mxser_new-eliminate-tty-ldisc-deref.patch char-mxser_new-testbit-for-bit-testing.patch char-mxser_new-correct-fail-paths.patch char-mxser_new-dont-check-tty_unregister-retval.patch char-mxser_new-compress-isa-finding.patch char-mxser_new-register-tty-devices-on-the-fly.patch char-mxser_new-compact-structures-round2.patch char-mxser_new-reverse-if-else-paths-patch.patch char-mxser_new-comments-cleanup.patch char-mxser_new-correct-intr-handler-proto.patch char-mxser_new-delete-ttys-and-termios.patch char-mxser_new-pci-probing.patch mxser_new-correct-tty-driver-name.patch char-stallion-use-pr_debug-macro.patch char-stallion-remove-unneeded-casts.patch char-stallion-kill-typedefs.patch char-stallion-move-init-deinit.patch char-stallion-uninline-functions.patch char-stallion-mark-functions-as-init.patch char-stallion-remove-many-prototypes.patch tty-preparatory-structures-for-termios-revamp.patch tty-preparatory-structures-for-termios-revamp-strip-fix.patch tty-switch-to-ktermios-and-new-framework.patch tty-switch-to-ktermios.patch tty-switch-to-ktermios-nozomi-fix.patch tty-switch-to-ktermios-bluetooth-fix.patch tty-switch-to-ktermios-3270-fix.patch ide-hpt3xxn-clocking-fixes.patch ide-fix-hpt37x-timing-tables.patch ide-optimize-hpt37x-timing-tables.patch ide-fix-hpt3xx-hotswap-support.patch ide-fix-the-case-of-multiple-hpt3xx-chips-present.patch ide-hpt3xx-fix-pci-clock-detection.patch ide-hpt3xx-fix-pci-clock-detection-fix-2.patch piix-fix-82371mx-enablebits.patch piix-remove-check-for-broken-mw-dma-mode-0.patch piix-slc90e66-pio-mode-fallback-fix.patch hpt3xx-rework-rate-filtering.patch hpt3xx-rework-rate-filtering-tidy.patch hpt3xx-print-the-real-chip-name-at-startup.patch hpt3xx-switch-to-using-pci_get_slot.patch hpt3xx-cache-channels-mcr-address.patch hpt3x7-merge-speedproc-handlers.patch hpt370-clean-up-dma-timeout-handling.patch hpt3xx-init-code-rewrite.patch ide-more-conversion-to-pci_get-apis.patch igafb-switch-to-pci_get-api.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