Automatic merge of 'misc-fixes' branch from

rsync://rsync.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev

+32 -5
+3
drivers/scsi/ahci.c
··· 32 #include <linux/delay.h> 33 #include <linux/interrupt.h> 34 #include <linux/sched.h> 35 #include "scsi.h" 36 #include <scsi/scsi_host.h> 37 #include <linux/libata.h> ··· 290 { 291 struct ahci_host_priv *hpriv = host_set->private_data; 292 kfree(hpriv); 293 } 294 295 static int ahci_port_start(struct ata_port *ap)
··· 32 #include <linux/delay.h> 33 #include <linux/interrupt.h> 34 #include <linux/sched.h> 35 + #include <linux/dma-mapping.h> 36 #include "scsi.h" 37 #include <scsi/scsi_host.h> 38 #include <linux/libata.h> ··· 289 { 290 struct ahci_host_priv *hpriv = host_set->private_data; 291 kfree(hpriv); 292 + 293 + ata_host_stop(host_set); 294 } 295 296 static int ahci_port_start(struct ata_port *ap)
+2
drivers/scsi/ata_piix.c
··· 153 154 .port_start = ata_port_start, 155 .port_stop = ata_port_stop, 156 }; 157 158 static struct ata_port_operations piix_sata_ops = { ··· 181 182 .port_start = ata_port_start, 183 .port_stop = ata_port_stop, 184 }; 185 186 static struct ata_port_info piix_port_info[] = {
··· 153 154 .port_start = ata_port_start, 155 .port_stop = ata_port_stop, 156 + .host_stop = ata_host_stop, 157 }; 158 159 static struct ata_port_operations piix_sata_ops = { ··· 180 181 .port_start = ata_port_start, 182 .port_stop = ata_port_stop, 183 + .host_stop = ata_host_stop, 184 }; 185 186 static struct ata_port_info piix_port_info[] = {
+11 -4
drivers/scsi/libata-core.c
··· 3322 dma_free_coherent(dev, ATA_PRD_TBL_SZ, ap->prd, ap->prd_dma); 3323 } 3324 3325 /** 3326 * ata_host_remove - Unregister SCSI host structure with upper layers 3327 * @ap: Port to unregister ··· 3885 } 3886 3887 free_irq(host_set->irq, host_set); 3888 - if (host_set->ops->host_stop) 3889 - host_set->ops->host_stop(host_set); 3890 - if (host_set->mmio_base) 3891 - iounmap(host_set->mmio_base); 3892 3893 for (i = 0; i < host_set->n_ports; i++) { 3894 ap = host_set->ports[i]; ··· 3902 3903 scsi_host_put(ap->host); 3904 } 3905 3906 kfree(host_set); 3907 ··· 4003 EXPORT_SYMBOL_GPL(ata_exec_command); 4004 EXPORT_SYMBOL_GPL(ata_port_start); 4005 EXPORT_SYMBOL_GPL(ata_port_stop); 4006 EXPORT_SYMBOL_GPL(ata_interrupt); 4007 EXPORT_SYMBOL_GPL(ata_qc_prep); 4008 EXPORT_SYMBOL_GPL(ata_bmdma_setup);
··· 3322 dma_free_coherent(dev, ATA_PRD_TBL_SZ, ap->prd, ap->prd_dma); 3323 } 3324 3325 + void 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 + 3332 /** 3333 * ata_host_remove - Unregister SCSI host structure with upper layers 3334 * @ap: Port to unregister ··· 3878 } 3879 3880 free_irq(host_set->irq, host_set); 3881 3882 for (i = 0; i < host_set->n_ports; i++) { 3883 ap = host_set->ports[i]; ··· 3899 3900 scsi_host_put(ap->host); 3901 } 3902 + 3903 + if (host_set->ops->host_stop) 3904 + host_set->ops->host_stop(host_set); 3905 3906 kfree(host_set); 3907 ··· 3997 EXPORT_SYMBOL_GPL(ata_exec_command); 3998 EXPORT_SYMBOL_GPL(ata_port_start); 3999 EXPORT_SYMBOL_GPL(ata_port_stop); 4000 + EXPORT_SYMBOL_GPL(ata_host_stop); 4001 EXPORT_SYMBOL_GPL(ata_interrupt); 4002 EXPORT_SYMBOL_GPL(ata_qc_prep); 4003 EXPORT_SYMBOL_GPL(ata_bmdma_setup);
+1 -1
drivers/scsi/libata.h
··· 26 #define __LIBATA_H__ 27 28 #define DRV_NAME "libata" 29 - #define DRV_VERSION "1.10" /* must be exactly four chars */ 30 31 struct ata_scsi_args { 32 u16 *id;
··· 26 #define __LIBATA_H__ 27 28 #define DRV_NAME "libata" 29 + #define DRV_VERSION "1.11" /* must be exactly four chars */ 30 31 struct ata_scsi_args { 32 u16 *id;
+2
drivers/scsi/sata_nv.c
··· 329 host->host_desc->disable_hotplug(host_set); 330 331 kfree(host); 332 } 333 334 static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
··· 329 host->host_desc->disable_hotplug(host_set); 330 331 kfree(host); 332 + 333 + ata_host_stop(host_set); 334 } 335 336 static int nv_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
+1
drivers/scsi/sata_promise.c
··· 122 .scr_write = pdc_sata_scr_write, 123 .port_start = pdc_port_start, 124 .port_stop = pdc_port_stop, 125 }; 126 127 static struct ata_port_info pdc_port_info[] = {
··· 122 .scr_write = pdc_sata_scr_write, 123 .port_start = pdc_port_start, 124 .port_stop = pdc_port_stop, 125 + .host_stop = ata_host_stop, 126 }; 127 128 static struct ata_port_info pdc_port_info[] = {
+2
drivers/scsi/sata_qstor.c
··· 536 537 writeb(0, mmio_base + QS_HCT_CTRL); /* disable host interrupts */ 538 writeb(QS_CNFG3_GSRST, mmio_base + QS_HCF_CNFG3); /* global reset */ 539 } 540 541 static void qs_host_init(unsigned int chip_id, struct ata_probe_ent *pe)
··· 536 537 writeb(0, mmio_base + QS_HCT_CTRL); /* disable host interrupts */ 538 writeb(QS_CNFG3_GSRST, mmio_base + QS_HCF_CNFG3); /* global reset */ 539 + 540 + ata_host_stop(host_set); 541 } 542 543 static void qs_host_init(unsigned int chip_id, struct ata_probe_ent *pe)
+1
drivers/scsi/sata_sil.c
··· 161 .scr_write = sil_scr_write, 162 .port_start = ata_port_start, 163 .port_stop = ata_port_stop, 164 }; 165 166 static struct ata_port_info sil_port_info[] = {
··· 161 .scr_write = sil_scr_write, 162 .port_start = ata_port_start, 163 .port_stop = ata_port_stop, 164 + .host_stop = ata_host_stop, 165 }; 166 167 static struct ata_port_info sil_port_info[] = {
+1
drivers/scsi/sata_sis.c
··· 114 .scr_write = sis_scr_write, 115 .port_start = ata_port_start, 116 .port_stop = ata_port_stop, 117 }; 118 119 static struct ata_port_info sis_port_info = {
··· 114 .scr_write = sis_scr_write, 115 .port_start = ata_port_start, 116 .port_stop = ata_port_stop, 117 + .host_stop = ata_host_stop, 118 }; 119 120 static struct ata_port_info sis_port_info = {
+1
drivers/scsi/sata_svw.c
··· 313 .scr_write = k2_sata_scr_write, 314 .port_start = ata_port_start, 315 .port_stop = ata_port_stop, 316 }; 317 318 static void k2_sata_setup_port(struct ata_ioports *port, unsigned long base)
··· 313 .scr_write = k2_sata_scr_write, 314 .port_start = ata_port_start, 315 .port_stop = ata_port_stop, 316 + .host_stop = ata_host_stop, 317 }; 318 319 static void k2_sata_setup_port(struct ata_ioports *port, unsigned long base)
+2
drivers/scsi/sata_sx4.c
··· 245 246 iounmap(dimm_mmio); 247 kfree(hpriv); 248 } 249 250 static int pdc_port_start(struct ata_port *ap)
··· 245 246 iounmap(dimm_mmio); 247 kfree(hpriv); 248 + 249 + ata_host_stop(host_set); 250 } 251 252 static int pdc_port_start(struct ata_port *ap)
+1
drivers/scsi/sata_uli.c
··· 113 114 .port_start = ata_port_start, 115 .port_stop = ata_port_stop, 116 }; 117 118 static struct ata_port_info uli_port_info = {
··· 113 114 .port_start = ata_port_start, 115 .port_stop = ata_port_stop, 116 + .host_stop = ata_host_stop, 117 }; 118 119 static struct ata_port_info uli_port_info = {
+1
drivers/scsi/sata_via.c
··· 134 135 .port_start = ata_port_start, 136 .port_stop = ata_port_stop, 137 }; 138 139 static struct ata_port_info svia_port_info = {
··· 134 135 .port_start = ata_port_start, 136 .port_stop = ata_port_stop, 137 + .host_stop = ata_host_stop, 138 }; 139 140 static struct ata_port_info svia_port_info = {
+2
drivers/scsi/sata_vsc.c
··· 21 #include <linux/blkdev.h> 22 #include <linux/delay.h> 23 #include <linux/interrupt.h> 24 #include "scsi.h" 25 #include <scsi/scsi_host.h> 26 #include <linux/libata.h> ··· 231 .scr_write = vsc_sata_scr_write, 232 .port_start = ata_port_start, 233 .port_stop = ata_port_stop, 234 }; 235 236 static void __devinit vsc_sata_setup_port(struct ata_ioports *port, unsigned long base)
··· 21 #include <linux/blkdev.h> 22 #include <linux/delay.h> 23 #include <linux/interrupt.h> 24 + #include <linux/dma-mapping.h> 25 #include "scsi.h" 26 #include <scsi/scsi_host.h> 27 #include <linux/libata.h> ··· 230 .scr_write = vsc_sata_scr_write, 231 .port_start = ata_port_start, 232 .port_stop = ata_port_stop, 233 + .host_stop = ata_host_stop, 234 }; 235 236 static void __devinit vsc_sata_setup_port(struct ata_ioports *port, unsigned long base)
+1
include/linux/libata.h
··· 410 extern void ata_exec_command(struct ata_port *ap, struct ata_taskfile *tf); 411 extern int ata_port_start (struct ata_port *ap); 412 extern void ata_port_stop (struct ata_port *ap); 413 extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 414 extern void ata_qc_prep(struct ata_queued_cmd *qc); 415 extern int ata_qc_issue_prot(struct ata_queued_cmd *qc);
··· 410 extern void ata_exec_command(struct ata_port *ap, struct ata_taskfile *tf); 411 extern int ata_port_start (struct ata_port *ap); 412 extern void ata_port_stop (struct ata_port *ap); 413 + extern void ata_host_stop (struct ata_host_set *host_set); 414 extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); 415 extern void ata_qc_prep(struct ata_queued_cmd *qc); 416 extern int ata_qc_issue_prot(struct ata_queued_cmd *qc);