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