RE: [PATCH] AHA152x driver hangs on PCMCIA card eject, kernel2.4.22-pre6

Bhavesh P. Davda
2003-07-17T14:00:49Z

> -----Original Message-----
> From: Alan Cox [mailto:alan@lxorguk.ukuu.org.uk]
> Sent: Wednesday, July 16, 2003 7:16 AM
> To: Bhavesh P. Davda
> Cc: Linux Kernel Mailing List; fischer@norbit.de;
> dahinds@users.sourceforge.net; Marcelo Tosatti
> Subject: Re: [PATCH] AHA152x driver hangs on PCMCIA card eject,
> kernel2.4.22-pre6
>
>
> On Maw, 2003-07-15 at 22:56, Bhavesh P. Davda wrote:
> > 2. A change to the aha152x_cs stub driver to not use the SCSI
> error-handling
> > thread code. The aha152x_cs driver calls scsi_unregister_module() as a
> > queued timer task when it gets a CS_EVENT_CARD_REMOVAL event,
> which causes
> > scsi_unregister_host() to do a down() on a semaphore, calling
> schedule(),
> > when executing the timer_bh for the timer.
>
> Right - scsi_unregister should not be called on a timer event, instead
> it needs to kick off a task queue

Thanks. I will give this a shot for the aha152x_cs stub driver, and post
another patch (unless David Hinds or Juergen Fischer get around to it
first).

However, the same problem exists for all the PCMCIA SCSI stub drivers, who
have all chosen to NOT use the scsi error handling thread, by setting
use_new_eh_code to 0 in the Scsi_Host_Template. I don't feel comfortable
posting patches to those stub drivers (fdomain, nsp, qlogic) to do the same,
since I don't have the hardware to test with.

Also, I wanted to warn you of a couple of leaps of faith I had to make to
answer questions I had for this patch:

1. Can the AIC-6360 host adapter ever have all 1's in the REV and DMACNTRL0
registers? I am guessing not, but waiting on specs from Adaptec to answer
this question.

2. What happens if there is no physical device hanging off an I/O port
address? I am guessing, that on an i386 host, the inb returns 0xFF, but am
not sure what happens on other architectures. I have a question outstanding
to Intel for this.

Thanks