Re: mmc_cd_gpio_request() failed request_threaded_irq()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 11 Jun 2012, kuninori.morimoto.gx@xxxxxxxxxxx wrote:

> Hi all
> 
> I noticed that mmc_cd_gpio_request() failed on request_threaded_irq().
> Now, I'm using v3.5-rc2 kernel.
> 
> current ${LINUX}/drivers/mmc/core/cd-gpio.c :: mmc_cd_gpio_request() uses
> 
> request_threaded_irq(irq, NULL, mmc_cd_gpio_irqt,
> 		   IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
> 		   cd->label, host);
> 
> It doesn't have hander (2nd is NULL), and flag doesn't have IRQF_ONESHOT.
> Then, it run  request_threaded_irq() -> __setup_irq()
> and, it got this error.
> 
> pr_err("Threaded irq requested with handler=NULL and !ONESHOT for irq %d\n",
> 	irq);
> 
> I'm not sure detail of it, but maybe from this commit
> 
> -------------------------------------------
> commit 1c6c69525b40eb76de8adf039409722015927dc3
> Author: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Date:   Thu Apr 19 10:35:17 2012 +0200
> 
>     genirq: Reject bogus threaded irq requests

Also see this thread: https://lkml.org/lkml/2012/6/12/151

For now you can add an IRQF_ONESHOT flag to the call.

Thanks
Guennadi

>     
>     Requesting a threaded interrupt without a primary handler and without
>     IRQF_ONESHOT set is dangerous.
>     
>     The core will use the default primary handler for it, which merily
>     wakes the thread. For a level type interrupt this results in an
>     interrupt storm, because the interrupt line is reenabled after the
>     primary handler runs. The device has still the line asserted, which
>     brings us back into the primary handler.
>     ...
> ------------------------------------------
> --
> To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux