Re: [PATCH] sdhci: Fix potential spinlock recursion
From: Pierre Ossman
Date: Thu Jan 15 2009 - 01:05:41 EST
On Wed, 14 Jan 2009 22:41:59 +0300
Anton Vorontsov <avorontsov@xxxxxxxxxxxxx> wrote:
>
> This happens because plain spin_lock() won't protect us from
> softirqs (tasklets). So in the sdhci interrupt handler we must
> grab the _irq version of the lock.
>
?! The docs I've read state that softirq:s are not executed until all
the hardirq:s have finished processing. And looking at your code, that
seems to still hold true. A softirq running esdhc_tasklet_card() gets
preempted by a hard irq and we have the lockup.
If you're running the code you sent a few minutes later, then something
is broken with your platform as esdhc_tasklet_card() clearly tries to
disable interrupts when it grabs the lock.
Rgds
--
-- Pierre Ossman
WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.
Attachment:
signature.asc
Description: PGP signature