diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2006-01-27 02:37:46 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2006-01-27 02:37:46 -0500 |
commit | b4d28889f7ebfe498dedaceb773b4c785b97d195 (patch) | |
tree | 7ac1070f4c956d035f40cc3b381b5868b980fafa | |
parent | 7dfb869c8e45e5863534f38fdac990829b22964a (diff) | |
parent | 041c5fc33cb7ed4fe5322585a611fb6e29a05d3a (diff) |
Merge branch 'tmp'
-rw-r--r-- | drivers/scsi/ahci.c | 4 | ||||
-rw-r--r-- | drivers/scsi/libata-core.c | 17 | ||||
-rw-r--r-- | drivers/scsi/libata-scsi.c | 10 | ||||
-rw-r--r-- | drivers/scsi/libata.h | 2 | ||||
-rw-r--r-- | drivers/scsi/pdc_adma.c | 4 | ||||
-rw-r--r-- | drivers/scsi/sata_mv.c | 4 | ||||
-rw-r--r-- | drivers/scsi/sata_promise.c | 4 | ||||
-rw-r--r-- | drivers/scsi/sata_qstor.c | 4 | ||||
-rw-r--r-- | drivers/scsi/sata_sil24.c | 4 | ||||
-rw-r--r-- | drivers/scsi/sata_sx4.c | 4 | ||||
-rw-r--r-- | drivers/scsi/scsi_error.c | 7 | ||||
-rw-r--r-- | include/linux/libata.h | 4 | ||||
-rw-r--r-- | include/scsi/scsi_eh.h | 3 |
13 files changed, 36 insertions, 35 deletions
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c index bb3686ae1885..0f6e4dd22901 100644 --- a/drivers/scsi/ahci.c +++ b/drivers/scsi/ahci.c | |||
@@ -184,7 +184,7 @@ struct ahci_port_priv { | |||
184 | static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg); | 184 | static u32 ahci_scr_read (struct ata_port *ap, unsigned int sc_reg); |
185 | static void ahci_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); | 185 | static void ahci_scr_write (struct ata_port *ap, unsigned int sc_reg, u32 val); |
186 | static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); | 186 | static int ahci_init_one (struct pci_dev *pdev, const struct pci_device_id *ent); |
187 | static int ahci_qc_issue(struct ata_queued_cmd *qc); | 187 | static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc); |
188 | static irqreturn_t ahci_interrupt (int irq, void *dev_instance, struct pt_regs *regs); | 188 | static irqreturn_t ahci_interrupt (int irq, void *dev_instance, struct pt_regs *regs); |
189 | static void ahci_phy_reset(struct ata_port *ap); | 189 | static void ahci_phy_reset(struct ata_port *ap); |
190 | static void ahci_irq_clear(struct ata_port *ap); | 190 | static void ahci_irq_clear(struct ata_port *ap); |
@@ -800,7 +800,7 @@ static irqreturn_t ahci_interrupt (int irq, void *dev_instance, struct pt_regs * | |||
800 | return IRQ_RETVAL(handled); | 800 | return IRQ_RETVAL(handled); |
801 | } | 801 | } |
802 | 802 | ||
803 | static int ahci_qc_issue(struct ata_queued_cmd *qc) | 803 | static unsigned int ahci_qc_issue(struct ata_queued_cmd *qc) |
804 | { | 804 | { |
805 | struct ata_port *ap = qc->ap; | 805 | struct ata_port *ap = qc->ap; |
806 | void __iomem *port_mmio = (void __iomem *) ap->ioaddr.cmd_addr; | 806 | void __iomem *port_mmio = (void __iomem *) ap->ioaddr.cmd_addr; |
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c index 5b6bc3655068..50fb7cea94eb 100644 --- a/drivers/scsi/libata-core.c +++ b/drivers/scsi/libata-core.c | |||
@@ -1126,10 +1126,9 @@ ata_exec_internal(struct ata_port *ap, struct ata_device *dev, | |||
1126 | qc->private_data = &wait; | 1126 | qc->private_data = &wait; |
1127 | qc->complete_fn = ata_qc_complete_internal; | 1127 | qc->complete_fn = ata_qc_complete_internal; |
1128 | 1128 | ||
1129 | if (ata_qc_issue(qc)) { | 1129 | qc->err_mask = ata_qc_issue(qc); |
1130 | qc->err_mask = AC_ERR_OTHER; | 1130 | if (qc->err_mask) |
1131 | ata_qc_complete(qc); | 1131 | ata_qc_complete(qc); |
1132 | } | ||
1133 | 1132 | ||
1134 | spin_unlock_irqrestore(&ap->host_set->lock, flags); | 1133 | spin_unlock_irqrestore(&ap->host_set->lock, flags); |
1135 | 1134 | ||
@@ -3860,10 +3859,10 @@ static inline int ata_should_dma_map(struct ata_queued_cmd *qc) | |||
3860 | * spin_lock_irqsave(host_set lock) | 3859 | * spin_lock_irqsave(host_set lock) |
3861 | * | 3860 | * |
3862 | * RETURNS: | 3861 | * RETURNS: |
3863 | * Zero on success, negative on error. | 3862 | * Zero on success, AC_ERR_* mask on failure |
3864 | */ | 3863 | */ |
3865 | 3864 | ||
3866 | int ata_qc_issue(struct ata_queued_cmd *qc) | 3865 | unsigned int ata_qc_issue(struct ata_queued_cmd *qc) |
3867 | { | 3866 | { |
3868 | struct ata_port *ap = qc->ap; | 3867 | struct ata_port *ap = qc->ap; |
3869 | 3868 | ||
@@ -3888,7 +3887,7 @@ int ata_qc_issue(struct ata_queued_cmd *qc) | |||
3888 | 3887 | ||
3889 | sg_err: | 3888 | sg_err: |
3890 | qc->flags &= ~ATA_QCFLAG_DMAMAP; | 3889 | qc->flags &= ~ATA_QCFLAG_DMAMAP; |
3891 | return -1; | 3890 | return AC_ERR_SYSTEM; |
3892 | } | 3891 | } |
3893 | 3892 | ||
3894 | 3893 | ||
@@ -3907,10 +3906,10 @@ sg_err: | |||
3907 | * spin_lock_irqsave(host_set lock) | 3906 | * spin_lock_irqsave(host_set lock) |
3908 | * | 3907 | * |
3909 | * RETURNS: | 3908 | * RETURNS: |
3910 | * Zero on success, negative on error. | 3909 | * Zero on success, AC_ERR_* mask on failure |
3911 | */ | 3910 | */ |
3912 | 3911 | ||
3913 | int ata_qc_issue_prot(struct ata_queued_cmd *qc) | 3912 | unsigned int ata_qc_issue_prot(struct ata_queued_cmd *qc) |
3914 | { | 3913 | { |
3915 | struct ata_port *ap = qc->ap; | 3914 | struct ata_port *ap = qc->ap; |
3916 | 3915 | ||
@@ -4015,7 +4014,7 @@ int ata_qc_issue_prot(struct ata_queued_cmd *qc) | |||
4015 | 4014 | ||
4016 | default: | 4015 | default: |
4017 | WARN_ON(1); | 4016 | WARN_ON(1); |
4018 | return -1; | 4017 | return AC_ERR_SYSTEM; |
4019 | } | 4018 | } |
4020 | 4019 | ||
4021 | return 0; | 4020 | return 0; |
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index c496309f691a..95e3c278dd43 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c | |||
@@ -1322,10 +1322,9 @@ static void ata_scsi_translate(struct ata_port *ap, struct ata_device *dev, | |||
1322 | goto early_finish; | 1322 | goto early_finish; |
1323 | 1323 | ||
1324 | /* select device, send command to hardware */ | 1324 | /* select device, send command to hardware */ |
1325 | if (ata_qc_issue(qc)) { | 1325 | qc->err_mask = ata_qc_issue(qc); |
1326 | qc->err_mask |= AC_ERR_OTHER; | 1326 | if (qc->err_mask) |
1327 | ata_qc_complete(qc); | 1327 | ata_qc_complete(qc); |
1328 | } | ||
1329 | 1328 | ||
1330 | VPRINTK("EXIT\n"); | 1329 | VPRINTK("EXIT\n"); |
1331 | return; | 1330 | return; |
@@ -2044,10 +2043,9 @@ static void atapi_request_sense(struct ata_queued_cmd *qc) | |||
2044 | 2043 | ||
2045 | qc->complete_fn = atapi_sense_complete; | 2044 | qc->complete_fn = atapi_sense_complete; |
2046 | 2045 | ||
2047 | if (ata_qc_issue(qc)) { | 2046 | qc->err_mask = ata_qc_issue(qc); |
2048 | qc->err_mask |= AC_ERR_OTHER; | 2047 | if (qc->err_mask) |
2049 | ata_qc_complete(qc); | 2048 | ata_qc_complete(qc); |
2050 | } | ||
2051 | 2049 | ||
2052 | DPRINTK("EXIT\n"); | 2050 | DPRINTK("EXIT\n"); |
2053 | } | 2051 | } |
diff --git a/drivers/scsi/libata.h b/drivers/scsi/libata.h index e03ce48b7b4b..9d76923a2253 100644 --- a/drivers/scsi/libata.h +++ b/drivers/scsi/libata.h | |||
@@ -45,7 +45,7 @@ extern struct ata_queued_cmd *ata_qc_new_init(struct ata_port *ap, | |||
45 | struct ata_device *dev); | 45 | struct ata_device *dev); |
46 | extern int ata_rwcmd_protocol(struct ata_queued_cmd *qc); | 46 | extern int ata_rwcmd_protocol(struct ata_queued_cmd *qc); |
47 | extern void ata_qc_free(struct ata_queued_cmd *qc); | 47 | extern void ata_qc_free(struct ata_queued_cmd *qc); |
48 | extern int ata_qc_issue(struct ata_queued_cmd *qc); | 48 | extern unsigned int ata_qc_issue(struct ata_queued_cmd *qc); |
49 | extern int ata_check_atapi_dma(struct ata_queued_cmd *qc); | 49 | extern int ata_check_atapi_dma(struct ata_queued_cmd *qc); |
50 | extern void ata_dev_select(struct ata_port *ap, unsigned int device, | 50 | extern void ata_dev_select(struct ata_port *ap, unsigned int device, |
51 | unsigned int wait, unsigned int can_sleep); | 51 | unsigned int wait, unsigned int can_sleep); |
diff --git a/drivers/scsi/pdc_adma.c b/drivers/scsi/pdc_adma.c index 4daede86f00a..2dca6c53868a 100644 --- a/drivers/scsi/pdc_adma.c +++ b/drivers/scsi/pdc_adma.c | |||
@@ -131,7 +131,7 @@ static void adma_host_stop(struct ata_host_set *host_set); | |||
131 | static void adma_port_stop(struct ata_port *ap); | 131 | static void adma_port_stop(struct ata_port *ap); |
132 | static void adma_phy_reset(struct ata_port *ap); | 132 | static void adma_phy_reset(struct ata_port *ap); |
133 | static void adma_qc_prep(struct ata_queued_cmd *qc); | 133 | static void adma_qc_prep(struct ata_queued_cmd *qc); |
134 | static int adma_qc_issue(struct ata_queued_cmd *qc); | 134 | static unsigned int adma_qc_issue(struct ata_queued_cmd *qc); |
135 | static int adma_check_atapi_dma(struct ata_queued_cmd *qc); | 135 | static int adma_check_atapi_dma(struct ata_queued_cmd *qc); |
136 | static void adma_bmdma_stop(struct ata_queued_cmd *qc); | 136 | static void adma_bmdma_stop(struct ata_queued_cmd *qc); |
137 | static u8 adma_bmdma_status(struct ata_port *ap); | 137 | static u8 adma_bmdma_status(struct ata_port *ap); |
@@ -419,7 +419,7 @@ static inline void adma_packet_start(struct ata_queued_cmd *qc) | |||
419 | writew(aPIOMD4 | aGO, chan + ADMA_CONTROL); | 419 | writew(aPIOMD4 | aGO, chan + ADMA_CONTROL); |
420 | } | 420 | } |
421 | 421 | ||
422 | static int adma_qc_issue(struct ata_queued_cmd *qc) | 422 | static unsigned int adma_qc_issue(struct ata_queued_cmd *qc) |
423 | { | 423 | { |
424 | struct adma_port_priv *pp = qc->ap->private_data; | 424 | struct adma_port_priv *pp = qc->ap->private_data; |
425 | 425 | ||
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index 68d17791896f..498d6284a2f7 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
@@ -328,7 +328,7 @@ static void mv_host_stop(struct ata_host_set *host_set); | |||
328 | static int mv_port_start(struct ata_port *ap); | 328 | static int mv_port_start(struct ata_port *ap); |
329 | static void mv_port_stop(struct ata_port *ap); | 329 | static void mv_port_stop(struct ata_port *ap); |
330 | static void mv_qc_prep(struct ata_queued_cmd *qc); | 330 | static void mv_qc_prep(struct ata_queued_cmd *qc); |
331 | static int mv_qc_issue(struct ata_queued_cmd *qc); | 331 | static unsigned int mv_qc_issue(struct ata_queued_cmd *qc); |
332 | static irqreturn_t mv_interrupt(int irq, void *dev_instance, | 332 | static irqreturn_t mv_interrupt(int irq, void *dev_instance, |
333 | struct pt_regs *regs); | 333 | struct pt_regs *regs); |
334 | static void mv_eng_timeout(struct ata_port *ap); | 334 | static void mv_eng_timeout(struct ata_port *ap); |
@@ -1040,7 +1040,7 @@ static void mv_qc_prep(struct ata_queued_cmd *qc) | |||
1040 | * LOCKING: | 1040 | * LOCKING: |
1041 | * Inherited from caller. | 1041 | * Inherited from caller. |
1042 | */ | 1042 | */ |
1043 | static int mv_qc_issue(struct ata_queued_cmd *qc) | 1043 | static unsigned int mv_qc_issue(struct ata_queued_cmd *qc) |
1044 | { | 1044 | { |
1045 | void __iomem *port_mmio = mv_ap_base(qc->ap); | 1045 | void __iomem *port_mmio = mv_ap_base(qc->ap); |
1046 | struct mv_port_priv *pp = qc->ap->private_data; | 1046 | struct mv_port_priv *pp = qc->ap->private_data; |
diff --git a/drivers/scsi/sata_promise.c b/drivers/scsi/sata_promise.c index 02b14a870f52..010e08819886 100644 --- a/drivers/scsi/sata_promise.c +++ b/drivers/scsi/sata_promise.c | |||
@@ -96,7 +96,7 @@ static void pdc_qc_prep(struct ata_queued_cmd *qc); | |||
96 | static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf); | 96 | static void pdc_tf_load_mmio(struct ata_port *ap, const struct ata_taskfile *tf); |
97 | static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf); | 97 | static void pdc_exec_command_mmio(struct ata_port *ap, const struct ata_taskfile *tf); |
98 | static void pdc_irq_clear(struct ata_port *ap); | 98 | static void pdc_irq_clear(struct ata_port *ap); |
99 | static int pdc_qc_issue_prot(struct ata_queued_cmd *qc); | 99 | static unsigned int pdc_qc_issue_prot(struct ata_queued_cmd *qc); |
100 | 100 | ||
101 | 101 | ||
102 | static struct scsi_host_template pdc_ata_sht = { | 102 | static struct scsi_host_template pdc_ata_sht = { |
@@ -545,7 +545,7 @@ static inline void pdc_packet_start(struct ata_queued_cmd *qc) | |||
545 | readl((void __iomem *) ap->ioaddr.cmd_addr + PDC_PKT_SUBMIT); /* flush */ | 545 | readl((void __iomem *) ap->ioaddr.cmd_addr + PDC_PKT_SUBMIT); /* flush */ |
546 | } | 546 | } |
547 | 547 | ||
548 | static int pdc_qc_issue_prot(struct ata_queued_cmd *qc) | 548 | static unsigned int pdc_qc_issue_prot(struct ata_queued_cmd *qc) |
549 | { | 549 | { |
550 | switch (qc->tf.protocol) { | 550 | switch (qc->tf.protocol) { |
551 | case ATA_PROT_DMA: | 551 | case ATA_PROT_DMA: |
diff --git a/drivers/scsi/sata_qstor.c b/drivers/scsi/sata_qstor.c index 6367966941d6..b2f87da75735 100644 --- a/drivers/scsi/sata_qstor.c +++ b/drivers/scsi/sata_qstor.c | |||
@@ -120,7 +120,7 @@ static void qs_host_stop(struct ata_host_set *host_set); | |||
120 | static void qs_port_stop(struct ata_port *ap); | 120 | static void qs_port_stop(struct ata_port *ap); |
121 | static void qs_phy_reset(struct ata_port *ap); | 121 | static void qs_phy_reset(struct ata_port *ap); |
122 | static void qs_qc_prep(struct ata_queued_cmd *qc); | 122 | static void qs_qc_prep(struct ata_queued_cmd *qc); |
123 | static int qs_qc_issue(struct ata_queued_cmd *qc); | 123 | static unsigned int qs_qc_issue(struct ata_queued_cmd *qc); |
124 | static int qs_check_atapi_dma(struct ata_queued_cmd *qc); | 124 | static int qs_check_atapi_dma(struct ata_queued_cmd *qc); |
125 | static void qs_bmdma_stop(struct ata_queued_cmd *qc); | 125 | static void qs_bmdma_stop(struct ata_queued_cmd *qc); |
126 | static u8 qs_bmdma_status(struct ata_port *ap); | 126 | static u8 qs_bmdma_status(struct ata_port *ap); |
@@ -352,7 +352,7 @@ static inline void qs_packet_start(struct ata_queued_cmd *qc) | |||
352 | readl(chan + QS_CCT_CFF); /* flush */ | 352 | readl(chan + QS_CCT_CFF); /* flush */ |
353 | } | 353 | } |
354 | 354 | ||
355 | static int qs_qc_issue(struct ata_queued_cmd *qc) | 355 | static unsigned int qs_qc_issue(struct ata_queued_cmd *qc) |
356 | { | 356 | { |
357 | struct qs_port_priv *pp = qc->ap->private_data; | 357 | struct qs_port_priv *pp = qc->ap->private_data; |
358 | 358 | ||
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c index fb59012b9fbe..5a7a7b1d4add 100644 --- a/drivers/scsi/sata_sil24.c +++ b/drivers/scsi/sata_sil24.c | |||
@@ -251,7 +251,7 @@ static void sil24_scr_write(struct ata_port *ap, unsigned sc_reg, u32 val); | |||
251 | static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf); | 251 | static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf); |
252 | static void sil24_phy_reset(struct ata_port *ap); | 252 | static void sil24_phy_reset(struct ata_port *ap); |
253 | static void sil24_qc_prep(struct ata_queued_cmd *qc); | 253 | static void sil24_qc_prep(struct ata_queued_cmd *qc); |
254 | static int sil24_qc_issue(struct ata_queued_cmd *qc); | 254 | static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc); |
255 | static void sil24_irq_clear(struct ata_port *ap); | 255 | static void sil24_irq_clear(struct ata_port *ap); |
256 | static void sil24_eng_timeout(struct ata_port *ap); | 256 | static void sil24_eng_timeout(struct ata_port *ap); |
257 | static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs *regs); | 257 | static irqreturn_t sil24_interrupt(int irq, void *dev_instance, struct pt_regs *regs); |
@@ -557,7 +557,7 @@ static void sil24_qc_prep(struct ata_queued_cmd *qc) | |||
557 | sil24_fill_sg(qc, sge); | 557 | sil24_fill_sg(qc, sge); |
558 | } | 558 | } |
559 | 559 | ||
560 | static int sil24_qc_issue(struct ata_queued_cmd *qc) | 560 | static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc) |
561 | { | 561 | { |
562 | struct ata_port *ap = qc->ap; | 562 | struct ata_port *ap = qc->ap; |
563 | void __iomem *port = (void __iomem *)ap->ioaddr.cmd_addr; | 563 | void __iomem *port = (void __iomem *)ap->ioaddr.cmd_addr; |
diff --git a/drivers/scsi/sata_sx4.c b/drivers/scsi/sata_sx4.c index 9d8e4226c25c..db08a8ba9ea7 100644 --- a/drivers/scsi/sata_sx4.c +++ b/drivers/scsi/sata_sx4.c | |||
@@ -174,7 +174,7 @@ static void pdc20621_get_from_dimm(struct ata_probe_ent *pe, | |||
174 | static void pdc20621_put_to_dimm(struct ata_probe_ent *pe, | 174 | static void pdc20621_put_to_dimm(struct ata_probe_ent *pe, |
175 | void *psource, u32 offset, u32 size); | 175 | void *psource, u32 offset, u32 size); |
176 | static void pdc20621_irq_clear(struct ata_port *ap); | 176 | static void pdc20621_irq_clear(struct ata_port *ap); |
177 | static int pdc20621_qc_issue_prot(struct ata_queued_cmd *qc); | 177 | static unsigned int pdc20621_qc_issue_prot(struct ata_queued_cmd *qc); |
178 | 178 | ||
179 | 179 | ||
180 | static struct scsi_host_template pdc_sata_sht = { | 180 | static struct scsi_host_template pdc_sata_sht = { |
@@ -678,7 +678,7 @@ static void pdc20621_packet_start(struct ata_queued_cmd *qc) | |||
678 | } | 678 | } |
679 | } | 679 | } |
680 | 680 | ||
681 | static int pdc20621_qc_issue_prot(struct ata_queued_cmd *qc) | 681 | static unsigned int pdc20621_qc_issue_prot(struct ata_queued_cmd *qc) |
682 | { | 682 | { |
683 | switch (qc->tf.protocol) { | 683 | switch (qc->tf.protocol) { |
684 | case ATA_PROT_DMA: | 684 | case ATA_PROT_DMA: |
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index a2333d2c7af0..6bac3d2668fa 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -584,8 +584,7 @@ static int scsi_request_sense(struct scsi_cmnd *scmd) | |||
584 | * keep a list of pending commands for final completion, and once we | 584 | * keep a list of pending commands for final completion, and once we |
585 | * are ready to leave error handling we handle completion for real. | 585 | * are ready to leave error handling we handle completion for real. |
586 | **/ | 586 | **/ |
587 | static void scsi_eh_finish_cmd(struct scsi_cmnd *scmd, | 587 | void scsi_eh_finish_cmd(struct scsi_cmnd *scmd, struct list_head *done_q) |
588 | struct list_head *done_q) | ||
589 | { | 588 | { |
590 | scmd->device->host->host_failed--; | 589 | scmd->device->host->host_failed--; |
591 | scmd->eh_eflags = 0; | 590 | scmd->eh_eflags = 0; |
@@ -597,6 +596,7 @@ static void scsi_eh_finish_cmd(struct scsi_cmnd *scmd, | |||
597 | scsi_setup_cmd_retry(scmd); | 596 | scsi_setup_cmd_retry(scmd); |
598 | list_move_tail(&scmd->eh_entry, done_q); | 597 | list_move_tail(&scmd->eh_entry, done_q); |
599 | } | 598 | } |
599 | EXPORT_SYMBOL(scsi_eh_finish_cmd); | ||
600 | 600 | ||
601 | /** | 601 | /** |
602 | * scsi_eh_get_sense - Get device sense data. | 602 | * scsi_eh_get_sense - Get device sense data. |
@@ -1425,7 +1425,7 @@ static void scsi_eh_ready_devs(struct Scsi_Host *shost, | |||
1425 | * @done_q: list_head of processed commands. | 1425 | * @done_q: list_head of processed commands. |
1426 | * | 1426 | * |
1427 | **/ | 1427 | **/ |
1428 | static void scsi_eh_flush_done_q(struct list_head *done_q) | 1428 | void scsi_eh_flush_done_q(struct list_head *done_q) |
1429 | { | 1429 | { |
1430 | struct scsi_cmnd *scmd, *next; | 1430 | struct scsi_cmnd *scmd, *next; |
1431 | 1431 | ||
@@ -1454,6 +1454,7 @@ static void scsi_eh_flush_done_q(struct list_head *done_q) | |||
1454 | } | 1454 | } |
1455 | } | 1455 | } |
1456 | } | 1456 | } |
1457 | EXPORT_SYMBOL(scsi_eh_flush_done_q); | ||
1457 | 1458 | ||
1458 | /** | 1459 | /** |
1459 | * scsi_unjam_host - Attempt to fix a host which has a cmd that failed. | 1460 | * scsi_unjam_host - Attempt to fix a host which has a cmd that failed. |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 510aee82113a..5915f763b722 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -430,7 +430,7 @@ struct ata_port_operations { | |||
430 | void (*bmdma_start) (struct ata_queued_cmd *qc); | 430 | void (*bmdma_start) (struct ata_queued_cmd *qc); |
431 | 431 | ||
432 | void (*qc_prep) (struct ata_queued_cmd *qc); | 432 | void (*qc_prep) (struct ata_queued_cmd *qc); |
433 | int (*qc_issue) (struct ata_queued_cmd *qc); | 433 | unsigned int (*qc_issue) (struct ata_queued_cmd *qc); |
434 | 434 | ||
435 | void (*eng_timeout) (struct ata_port *ap); | 435 | void (*eng_timeout) (struct ata_port *ap); |
436 | 436 | ||
@@ -518,7 +518,7 @@ extern void ata_port_stop (struct ata_port *ap); | |||
518 | extern void ata_host_stop (struct ata_host_set *host_set); | 518 | extern void ata_host_stop (struct ata_host_set *host_set); |
519 | extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); | 519 | extern irqreturn_t ata_interrupt (int irq, void *dev_instance, struct pt_regs *regs); |
520 | extern void ata_qc_prep(struct ata_queued_cmd *qc); | 520 | extern void ata_qc_prep(struct ata_queued_cmd *qc); |
521 | extern int ata_qc_issue_prot(struct ata_queued_cmd *qc); | 521 | extern unsigned int ata_qc_issue_prot(struct ata_queued_cmd *qc); |
522 | extern void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf, | 522 | extern void ata_sg_init_one(struct ata_queued_cmd *qc, void *buf, |
523 | unsigned int buflen); | 523 | unsigned int buflen); |
524 | extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg, | 524 | extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg, |
diff --git a/include/scsi/scsi_eh.h b/include/scsi/scsi_eh.h index fabd879c2f2e..d160880b2a87 100644 --- a/include/scsi/scsi_eh.h +++ b/include/scsi/scsi_eh.h | |||
@@ -35,6 +35,9 @@ static inline int scsi_sense_valid(struct scsi_sense_hdr *sshdr) | |||
35 | } | 35 | } |
36 | 36 | ||
37 | 37 | ||
38 | extern void scsi_eh_finish_cmd(struct scsi_cmnd *scmd, | ||
39 | struct list_head *done_q); | ||
40 | extern void scsi_eh_flush_done_q(struct list_head *done_q); | ||
38 | extern void scsi_report_bus_reset(struct Scsi_Host *, int); | 41 | extern void scsi_report_bus_reset(struct Scsi_Host *, int); |
39 | extern void scsi_report_device_reset(struct Scsi_Host *, int, int); | 42 | extern void scsi_report_device_reset(struct Scsi_Host *, int, int); |
40 | extern int scsi_block_when_processing_errors(struct scsi_device *); | 43 | extern int scsi_block_when_processing_errors(struct scsi_device *); |