2006-09-25 09:45:00

by Jes Sorensen

[permalink] [raw]
Subject: [patch] qla1280 command timeout

Hi,

This one is originally from Ian Dall via bugzilla.kernel.org - Ian if
you wish to add a Signed-off-by please do, couldn't add it since you
didn't leave one in bugzilla.

Anyway the patch seems obviously correct (famous last words) and it
would be nice to get into 2.6.19.

Thanks,
Jes

Original patch from Ian Dall in bugzilla. Set command timeout as
specified by the SCSI layer rather than hardcode it to 30 seconds. I
have received a couple of reports of people hitting this one with
various tape configurations and the patch looks obviously correct.
- Jes

>From http://bugzilla.kernel.org/show_bug.cgi?id=6275

[email protected] (Ian Dall):

The command sent to the card was using a 30second timeout regardless of the
timeout requested in the scsi command passed down from higher levels.

Signed-off-by: Jes Sorensen <[email protected]>

---
drivers/scsi/qla1280.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Index: linux-2.6/drivers/scsi/qla1280.c
===================================================================
--- linux-2.6.orig/drivers/scsi/qla1280.c
+++ linux-2.6/drivers/scsi/qla1280.c
@@ -2864,7 +2864,7 @@ qla1280_64bit_start_scsi(struct scsi_qla
memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8));

/* Set ISP command timeout. */
- pkt->timeout = cpu_to_le16(30);
+ pkt->timeout = cpu_to_le16(cmd->timeout_per_command/HZ);

/* Set device target ID and LUN */
pkt->lun = SCSI_LUN_32(cmd);
@@ -3163,7 +3163,7 @@ qla1280_32bit_start_scsi(struct scsi_qla
memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8));

/* Set ISP command timeout. */
- pkt->timeout = cpu_to_le16(30);
+ pkt->timeout = cpu_to_le16(cmd->timeout_per_command/HZ);

/* Set device target ID and LUN */
pkt->lun = SCSI_LUN_32(cmd);


2006-09-25 16:12:36

by Ian Dall

[permalink] [raw]
Subject: Re: [patch] qla1280 command timeout

On Mon, 2006-09-25 at 05:44 -0400, Jes Sorensen wrote:
> Hi,
>
> This one is originally from Ian Dall via bugzilla.kernel.org - Ian if
> you wish to add a Signed-off-by please do, couldn't add it since you
> didn't leave one in bugzilla.

See below.

> Anyway the patch seems obviously correct (famous last words) and it
> would be nice to get into 2.6.19.
>
> Thanks,
> Jes
>
> Original patch from Ian Dall in bugzilla. Set command timeout as
> specified by the SCSI layer rather than hardcode it to 30 seconds. I
> have received a couple of reports of people hitting this one with
> various tape configurations and the patch looks obviously correct.
> - Jes
>
> >From http://bugzilla.kernel.org/show_bug.cgi?id=6275
>
> [email protected] (Ian Dall):
>
> The command sent to the card was using a 30second timeout regardless of the
> timeout requested in the scsi command passed down from higher levels.
>
> Signed-off-by: Jes Sorensen <[email protected]>

Signed-off-by: Ian Dall <[email protected]>
>
> ---
> drivers/scsi/qla1280.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: linux-2.6/drivers/scsi/qla1280.c
> ===================================================================
> --- linux-2.6.orig/drivers/scsi/qla1280.c
> +++ linux-2.6/drivers/scsi/qla1280.c
> @@ -2864,7 +2864,7 @@ qla1280_64bit_start_scsi(struct scsi_qla
> memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8));
>
> /* Set ISP command timeout. */
> - pkt->timeout = cpu_to_le16(30);
> + pkt->timeout = cpu_to_le16(cmd->timeout_per_command/HZ);
>
> /* Set device target ID and LUN */
> pkt->lun = SCSI_LUN_32(cmd);
> @@ -3163,7 +3163,7 @@ qla1280_32bit_start_scsi(struct scsi_qla
> memset(((char *)pkt + 8), 0, (REQUEST_ENTRY_SIZE - 8));
>
> /* Set ISP command timeout. */
> - pkt->timeout = cpu_to_le16(30);
> + pkt->timeout = cpu_to_le16(cmd->timeout_per_command/HZ);
>
> /* Set device target ID and LUN */
> pkt->lun = SCSI_LUN_32(cmd);
--
Ian Dall <[email protected]>