On Tue, Aug 15, 2000 at 02:17:38AM +0200, Oliver Neukum wrote:
> as the rules on scsi_abort have changed again, I'd like to ask some questions.
These sound familiar... I asked questions like this a few months ago.
Here is what I learned... feel free to correct me if I'm wrong.
> The scsi_abort method is called in task context and may return
> SCSI_ABORT_PENDING. It should not sleep. Is that right ?
In theory, it's called from task context.. I recently uncovered a bug
where the command abort handler was being called from an interrupt
context. I've sent data to Eric -- we'll see what happens. This is
an urgent issue for the driver I'm writing, so I hope that before long this
is fixed.
As for the return code... my understanding that the only valid returns were
SUCCESS and FAILED.
As for sleeping... my understanding was that sleeping was okay.
> Any queued srb should call the callback with DID_ABORT after scsi_abort.
> Is that right ?
That's not my understanding. When I issue an abort, I return SUCCESS from
my abort function and reset my virtual HBA to be ready for the next
command. I specifically avoid calling scsi_done() at all.
> Is scsi_abort required to leave the device in a sane state ?
I believe this is a good idea, but not strictly required. If the SCSI
mid-layer is still having trouble talking to your device, it is likely to
try the bus or host reset routines.
Matt
--
Matthew Dharm Home: [EMAIL PROTECTED]
Senior Engineer, QCP Inc. Work: [EMAIL PROTECTED]
What the hell are you?
-- Pitr to Dust Puppy
User Friendly, 12/3/1997
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]