Re: [PATCH] genirq: Fix bad IRQ_ONSHOT in forced IRQ setting

From: Kohji Okuno
Date: Thu Sep 17 2015 - 05:48:45 EST


From: Kohji Okuno <okuno.kohji@xxxxxxxxxxxxxxxx>
Date: Thu, 17 Sep 2015 17:21:08 +0900
>> On Thu, 17 Sep 2015, Kohji Okuno wrote:
>>> If handler and thread_fn have valid function pointers for each
>>> in request_thread_irq(), IRQF_ONESHOT is set unnecessarily in
>>> irq_setup_forces_threading() in case of threadirqs.
>>> As this result, the IRQ handler will not be called.
>>
>> That explanation does not make sense. Which handler is not called?
>>
>> Thanks,
>>
>> tglx
>
> Hi tglx,
>
> Please refer to drivers/mmc/host/sdhci.c. sdhci uses sdhci_irq and
> sdhci_thread_irq as the followings.
>
> 3366 sdhci_init(host, 0);
> 3367
> 3368 ret = request_threaded_irq(host->irq, sdhci_irq, sdhci_thread_irq,
> 3369 IRQF_SHARED, mmc_hostname(mmc), host);
>
> When I tested SDIO card, sdhci_irq() was not called after 1st SDIO interrupt.
> After I applied my patch, this worked good.
>
> Best regards,
> Kohji Okuno

Hi tglx,

When 1st sdio IRQ is happend, sdhci_irq() returns IRQ_WAKE_THREAD.
After this, sdhci_irq() is not called in case of threadirqs.

Best regards,
Kohji Okuno
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/