aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libata-core.c
diff options
context:
space:
mode:
author <jgarzik@pretzel.yyz.us>2005-05-29 14:24:57 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-05-29 14:24:57 -0400
commitd582c4ea307873503a68d6d7ab72ee8599e032a9 (patch)
tree30b5ea37ba5803fe25815d14ee248be309975cb5 /drivers/scsi/libata-core.c
parent87507cfdd2cde397c9da8f6e7ec23b2b47ec53d6 (diff)
parentaa8f0dc6c3dbf1cf3ff58f3e945c981be134814d (diff)
Automatic merge of /spare/repo/netdev-2.6 branch use-after-unmap
Diffstat (limited to 'drivers/scsi/libata-core.c')
-rw-r--r--drivers/scsi/libata-core.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 63d3f70d06e1..30a88f0e7bd6 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -3322,6 +3322,13 @@ void ata_port_stop (struct ata_port *ap)
3322 dma_free_coherent(dev, ATA_PRD_TBL_SZ, ap->prd, ap->prd_dma); 3322 dma_free_coherent(dev, ATA_PRD_TBL_SZ, ap->prd, ap->prd_dma);
3323} 3323}
3324 3324
3325void ata_host_stop (struct ata_host_set *host_set)
3326{
3327 if (host_set->mmio_base)
3328 iounmap(host_set->mmio_base);
3329}
3330
3331
3325/** 3332/**
3326 * ata_host_remove - Unregister SCSI host structure with upper layers 3333 * ata_host_remove - Unregister SCSI host structure with upper layers
3327 * @ap: Port to unregister 3334 * @ap: Port to unregister
@@ -3878,10 +3885,6 @@ void ata_pci_remove_one (struct pci_dev *pdev)
3878 } 3885 }
3879 3886
3880 free_irq(host_set->irq, host_set); 3887 free_irq(host_set->irq, host_set);
3881 if (host_set->ops->host_stop)
3882 host_set->ops->host_stop(host_set);
3883 if (host_set->mmio_base)
3884 iounmap(host_set->mmio_base);
3885 3888
3886 for (i = 0; i < host_set->n_ports; i++) { 3889 for (i = 0; i < host_set->n_ports; i++) {
3887 ap = host_set->ports[i]; 3890 ap = host_set->ports[i];
@@ -3900,6 +3903,9 @@ void ata_pci_remove_one (struct pci_dev *pdev)
3900 scsi_host_put(ap->host); 3903 scsi_host_put(ap->host);
3901 } 3904 }
3902 3905
3906 if (host_set->ops->host_stop)
3907 host_set->ops->host_stop(host_set);
3908
3903 kfree(host_set); 3909 kfree(host_set);
3904 3910
3905 pci_release_regions(pdev); 3911 pci_release_regions(pdev);
@@ -3997,6 +4003,7 @@ EXPORT_SYMBOL_GPL(ata_chk_err);
3997EXPORT_SYMBOL_GPL(ata_exec_command); 4003EXPORT_SYMBOL_GPL(ata_exec_command);
3998EXPORT_SYMBOL_GPL(ata_port_start); 4004EXPORT_SYMBOL_GPL(ata_port_start);
3999EXPORT_SYMBOL_GPL(ata_port_stop); 4005EXPORT_SYMBOL_GPL(ata_port_stop);
4006EXPORT_SYMBOL_GPL(ata_host_stop);
4000EXPORT_SYMBOL_GPL(ata_interrupt); 4007EXPORT_SYMBOL_GPL(ata_interrupt);
4001EXPORT_SYMBOL_GPL(ata_qc_prep); 4008EXPORT_SYMBOL_GPL(ata_qc_prep);
4002EXPORT_SYMBOL_GPL(ata_bmdma_setup); 4009EXPORT_SYMBOL_GPL(ata_bmdma_setup);