Re: initio.h header user confusion

Srdjan Todorovic
2007-02-21T17:32:19Z

On Wed, 21 Feb 2007, James Bottomley wrote:

> On Wed, 2007-02-21 at 16:12 +0000, Srdjan Todorovic wrote:
> > I'm working on a set of patches for the initio scsi driver and I found
> > some strangeness with its header file, initio.h. I noticed that
> > sun3_scsi.c and sun3_scsi_vme.c include the header, and it uses defines
> > such as SCSI_ABORT_SNOOZE (defined in initio.h).
>
> It's a remnant of the old 2.4 error handler and should be excised.
>
> In early 2.4 or perhaps even 2.2 the error handler ran in interrupt
> context, so there was no way of waiting for an abort to complete, hence
> this return value (it told the eh to wait a while for the abort).
>
> In 2.6 all eh routines run in the context of the host eh thread, so you
> can use standard msleep() etc. calls to wait for aborts to timeout or
> complete.
>
> James

Thanks for a good short explanation on the scsi error handling.

I poked around a bit more and all but one cases of SCSI_RESET_* are
in #if 0 blocks. The one case is tul_reset_scsi() which returns a
SCSI_RESET_SUCCESS value, which is discarded by the caller anyway.

SCSI_ABORT_* is only used in tul_abort_srb(). This doesn't use the
new error handler threads.

As Matthew Wilcox suggested in a previous email in this thread,
I don't have the expertise to fix this (though I do have the hardware).
I'd like to read up on scsi eh just the same, and might have a go
at fixing this at some point.

Thanks

Srdjan