aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/libata-core.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index 5060a1a1ad25..1a00c80b96d4 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -3809,7 +3809,7 @@ fsm_start:
3809 3809
3810 if (timeout) 3810 if (timeout)
3811 ata_port_queue_task(ap, ata_pio_task, ap, timeout); 3811 ata_port_queue_task(ap, ata_pio_task, ap, timeout);
3812 else if (!qc_completed) 3812 else if (has_next)
3813 goto fsm_start; 3813 goto fsm_start;
3814} 3814}
3815 3815
@@ -3866,7 +3866,8 @@ static void atapi_packet_task(void *_data)
3866 * finished. Hence, the following locking. 3866 * finished. Hence, the following locking.
3867 */ 3867 */
3868 spin_lock_irqsave(&ap->host_set->lock, flags); 3868 spin_lock_irqsave(&ap->host_set->lock, flags);
3869 ap->flags &= ~ATA_FLAG_NOINTR; 3869#warning FIXME
3870 /* ap->flags &= ~ATA_FLAG_NOINTR; */
3870 ata_data_xfer(ap, qc->cdb, qc->dev->cdb_len, 1); 3871 ata_data_xfer(ap, qc->cdb, qc->dev->cdb_len, 1);
3871 if (qc->tf.protocol == ATA_PROT_ATAPI_DMA) 3872 if (qc->tf.protocol == ATA_PROT_ATAPI_DMA)
3872 ap->ops->bmdma_start(qc); /* initiate bmdma */ 3873 ap->ops->bmdma_start(qc); /* initiate bmdma */
@@ -4200,7 +4201,7 @@ unsigned int ata_qc_issue_prot(struct ata_queued_cmd *qc)
4200 ap->hsm_task_state = HSM_ST_LAST; 4201 ap->hsm_task_state = HSM_ST_LAST;
4201 4202
4202 if (qc->tf.flags & ATA_TFLAG_POLLING) 4203 if (qc->tf.flags & ATA_TFLAG_POLLING)
4203 ata_queue_pio_task(ap); 4204 ata_port_queue_task(ap, ata_pio_task, ap, 0);
4204 4205
4205 break; 4206 break;
4206 4207