Re: 2.6.17-mm3 -- BUG: trying to register non-static key!

From: Ingo Molnar
Date: Wed Jun 28 2006 - 11:37:22 EST



* Miles Lane <miles.lane@xxxxxxxxx> wrote:

> mmc0: starting CMD0 arg 00000000 flags 00000040
> BUG: trying to register non-static key!
> turning off the locking correctness validator.
> [<c1003502>] show_trace_log_lvl+0x54/0xfd
> [<c1003b6a>] show_trace+0xd/0x10
> [<c1003c0e>] dump_stack+0x19/0x1b
> [<c102c0a8>] __lock_acquire+0x101/0x95e
> [<c102cbca>] lock_acquire+0x60/0x80
> [<c11fcc7b>] _spin_lock_irq+0x29/0x38
> [<c11faa0a>] wait_for_completion+0x24/0xd0
> [<f8831367>] mmc_wait_for_req+0xa2/0xaf [mmc_core]
> [<f8831539>] mmc_wait_for_cmd+0x50/0x5b [mmc_core]
> [<f883162f>] mmc_idle_cards+0x83/0xe0 [mmc_core]
> [<f8831a0e>] mmc_rescan+0x18a/0xec4 [mmc_core]
> [<c1024198>] run_workqueue+0x86/0xcb
> [<c1024711>] worker_thread+0xe1/0x114
> [<c1026ca7>] kthread+0xb0/0xdc
> [<c1001005>] kernel_thread_helper+0x5/0xb
> sdhci [sdhci_tasklet_finish()]: Ending request, cmd (0)

does the patch below fix this?

Ingo

------->
Subject: lockdep: annotate on-stack completions, mmc
From: Ingo Molnar <mingo@xxxxxxx>

lockdep needs to have the waitqueue lock initialized for on-stack
waitqueues implicitly initialized by DECLARE_COMPLETION().

Annotate mmc_wait_for_req()'s on-stack completion accordingly.

Has no effect on non-lockdep kernels.

Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
---
drivers/mmc/mmc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux/drivers/mmc/mmc.c
===================================================================
--- linux.orig/drivers/mmc/mmc.c
+++ linux/drivers/mmc/mmc.c
@@ -129,7 +129,7 @@ static void mmc_wait_done(struct mmc_req

int mmc_wait_for_req(struct mmc_host *host, struct mmc_request *mrq)
{
- DECLARE_COMPLETION(complete);
+ DECLARE_COMPLETION_ONSTACK(complete);

mrq->done_data = &complete;
mrq->done = mmc_wait_done;
-
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/