enum scsi_eh_timer_return ata_scsi_timed_out(struct scsi_cmnd *cmd)
{
struct Scsi_Host *host = cmd->device->host;
- struct ata_port *ap = (struct ata_port *) &host->hostdata[0];
+ struct ata_port *ap = ata_shost_to_port(host);
unsigned long flags;
struct ata_queued_cmd *qc;
enum scsi_eh_timer_return ret = EH_HANDLED;
* RETURNS:
* Zero.
*/
-int ata_scsi_error(struct Scsi_Host *host)
+void ata_scsi_error(struct Scsi_Host *host)
{
- struct ata_port *ap = (struct ata_port *)&host->hostdata[0];
+ struct ata_port *ap = ata_shost_to_port(host);
DPRINTK("ENTER\n");
scsi_eh_flush_done_q(&ap->eh_done_q);
DPRINTK("EXIT\n");
- return 0;
}
/**
* LOCKING:
* Inherited from SCSI layer (none, can sleep)
*/
-
static void ata_qc_timeout(struct ata_queued_cmd *qc)
{
struct ata_port *ap = qc->ap;
printk(KERN_ERR "ata%u: command 0x%x timeout, stat 0x%x host_stat 0x%x\n",
ap->id, qc->tf.command, drv_stat, host_stat);
- ap->hsm_task_state = HSM_ST_IDLE;
-
/* complete taskfile transaction */
qc->err_mask |= AC_ERR_TIMEOUT;
break;