Skip to content

Commit

Permalink
[SCSI] megaraid_sas: fix extended timeout handling
Browse files Browse the repository at this point in the history
Replace the eh_timed_out method usage with setting sdev->timeout in
slave_configure.  Also only use the extended timeout for raid volumes,
physical devices shouldn't need it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
  • Loading branch information
Christoph Hellwig authored and James Bottomley committed Mar 14, 2006
1 parent f33b5d7 commit e5b3a65
Showing 1 changed file with 6 additions and 20 deletions.
26 changes: 6 additions & 20 deletions drivers/scsi/megaraid/megaraid_sas.c
Original file line number Diff line number Diff line change
Expand Up @@ -772,8 +772,6 @@ megasas_queue_command(struct scsi_cmnd *scmd, void (*done) (struct scsi_cmnd *))
goto out_return_cmd;

cmd->scmd = scmd;
scmd->SCp.ptr = (char *)cmd;
scmd->SCp.sent_command = jiffies;

/*
* Issue the command to the FW
Expand Down Expand Up @@ -804,6 +802,12 @@ static int megasas_slave_configure(struct scsi_device *sdev)
*/
if (sdev->channel < MEGASAS_MAX_PD_CHANNELS && sdev->type == TYPE_DISK)
return -ENXIO;

/*
* The RAID firmware may require extended timeouts.
*/
if (sdev->channel >= MEGASAS_MAX_PD_CHANNELS)
sdev->timeout = 90 * HZ;
return 0;
}

Expand Down Expand Up @@ -875,23 +879,6 @@ static int megasas_generic_reset(struct scsi_cmnd *scmd)
return ret_val;
}

static enum scsi_eh_timer_return megasas_reset_timer(struct scsi_cmnd *scmd)
{
unsigned long seconds;

if (scmd->SCp.ptr) {
seconds = (jiffies - scmd->SCp.sent_command) / HZ;

if (seconds < 90) {
return EH_RESET_TIMER;
} else {
return EH_NOT_HANDLED;
}
}

return EH_HANDLED;
}

/**
* megasas_reset_device - Device reset handler entry point
*/
Expand Down Expand Up @@ -962,7 +949,6 @@ static struct scsi_host_template megasas_template = {
.eh_device_reset_handler = megasas_reset_device,
.eh_bus_reset_handler = megasas_reset_bus_host,
.eh_host_reset_handler = megasas_reset_bus_host,
.eh_timed_out = megasas_reset_timer,
.use_clustering = ENABLE_CLUSTERING,
};

Expand Down

0 comments on commit e5b3a65

Please sign in to comment.