[3374] in linux-scsi channel archive

home help back first fref pref prev next nref lref last post

problems while converting to the new scsi code

daemon@ATHENA.MIT.EDU (Dario_Ballabio)
Sat Feb 21 13:20:10 1998

Date: 	Sat, 21 Feb 1998 19:10:40 +0100
From: Dario_Ballabio@milano.europe.dg.com (Dario_Ballabio)
To: linux-scsi@vger.rutgers.edu, eric@andante.jic.com

Hi, I see that in the new scsi code, when the low level driver
returns DID_BUS_BUSY, the upper layer retries the command
only 5 times. The command was retried forever in the old
scsi code. The new behaviour does not work with the Ultrastor 14F,
where could be necessary to retry a command many more times.
The old behaviour seems to be more flexible, and the patch in
scsi_error.c should be:
case DID_PARITY:
case DID_BUS_BUSY:
   return NEEDS_RETRY;
case DID_ERROR:
   goto maybe_retry;

Otherwise a new return code (DID_SOFT_ERROR?) is required in order
to get the command retried forever. The u14-34f driver relies
heavily upon the retry forever feature.

By the way there is an obvious bug in scsi_obsolete.c: host_active
must be declared extern rather than static, since it is the same
host_active variable used in scsi.c.

With the above fix the blocking code seems to work again as it did in
the old scsi code.

Cheers,

- db

home help back first fref pref prev next nref lref last post