[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