[PATCH 2.6.32.y] hostap_cs: fix sleeping function called from invalid context
Tim Gardner
tim.gardner at canonical.com
Tue Jan 18 16:10:18 EST 2011
On 01/18/2011 08:43 AM, Stanislaw Gruszka wrote:
> On Tue, Jan 18, 2011 at 07:49:33AM -0700, Tim Gardner wrote:
>> Yes - I think this patch is correct. I didn't drill deep enough to
>> notice the GFP_KERNEL memory allocation. However, I think there is
>> still a problem with the interrupt handler which will only be
>> noticed if there is another active device on the same shared
>> interrupt. Shouldn't it return IRQ_NONE? See attached.
>
> I'm not sure. I think kernel could disable interrupt line when IRQ_NONE
> is returned, but line is not shared.
>
I believe it is a shared IRQ, but its been so long since I've worked
with the PCMCIA version of the prism device that I can't remember for
sure. The PCI flavor definitely requests a shared IRQ, and both PCI and
PCMCIA use the same interrupt handler function.
> Generally hostap pcmcia initialization procedure does not look correct.
> It should be rahter rearranged to request irq when we are ready to
> receive it, like that:
>
> ret = pcmcia_enable_device(link);
> if (ret)
> goto failed;
>
> dev->irq = link->irq;
> dev->base_addr = link->resource[0]->start;
>
> ret = pcmcia_request_irq(link, prism2_interrupt);
> if (ret)
> goto failed;
>
> However I'm not sure if pcmcia_enable_device() does not require
> to have pcmcia_request_irq() before?
>
I don't know either, but this device is becoming rare enough that I'm
not gonna lose any sleep over it.
rtg
--
Tim Gardner tim.gardner at canonical.com
More information about the linux-pcmcia
mailing list