Re: [PATCH] mmc: sdhci: disable interrupt before free_irq

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

 



Hi,

On Sat, Jan 05 2013, Kevin Liu wrote:
> Current code missed disabling interrupts before free irq which is shared.
>
> Notice below comments for function free_irq (kernel/irq/manage.c):
> On a shared IRQ the caller must ensure the interrupt is disabled
> on the card it drives before calling this function.
>
> Original code has below issue during suspend/resume when multiple SD hosts
> share the same IRQ:
> 1. Assume there are two hosts (host1 for emmc while host2 for sd) share
> the same mmc irq.
> 2. When system suspend, host2 will be suspended before host1.
> So the sequence is below:
> 	step1: irq handler for host2 removed ->
> 	step2: irq handler for host1 removed and irq disabled ->
> 	... system suspended ...
> 	... system resumed ...
> 	step3: irq enabled and the irq handler for host1 restored ->
> 	step4: irq handler for host2 restored
> 3. So there is the buggy time slot that the irq is enabled but the irq handler
> for host2 is removed. Then host2 interrupt can be triggered but can't be handled
> at that moment.
>
> Signed-off-by: Jialing Fu <jlfu@xxxxxxxxxxx>
> Signed-off-by: Kevin Liu <kliu5@xxxxxxxxxxx>

Thanks, pushed to mmc-next for 3.9.

- Chris.
-- 
Chris Ball   <cjb@xxxxxxxxxx>   <http://printf.net/>
One Laptop Per Child
--
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