Re: PowerPC: Sleeping function called from invalid context at emulate_instruction()

From: Kumar Gala
Date: Wed Feb 22 2006 - 23:24:57 EST



On Feb 22, 2006, at 2:29 PM, Michael Buesch wrote:

Hi,

On a powerPC 32bit, I got the following debugging assertion failure:

[ 733.209827] Debug: sleeping function called from invalid context at arch/powerpc/kernel/traps.c:697
[ 733.210682] in_atomic():0, irqs_disabled():1
[ 733.211347] Call Trace:
[ 733.211969] [D6023EB0] [C0007F84] show_stack+0x58/0x174 (unreliable)
[ 733.212765] [D6023EE0] [C0022C34] __might_sleep+0xbc/0xd0
[ 733.213523] [D6023EF0] [C000D158] program_check_exception +0x1d8/0x4fc
[ 733.214309] [D6023F40] [C000E744] ret_from_except_full+0x0/0x4c
[ 733.215076] --- Exception: 700 at 0x102a7100
[ 733.215785] LR = 0xdb9ef04

It is caused by the line
if (get_user(instword, (u32 __user *)(regs->nip)))
in arch/powerpc/kernel/traps.c:emulate_instruction()

I am not sure, if this is an indication for a bug, or just false alarm.
In case of false alarm, the debugging message should be made quiet
somehow, though.

Paul,

Last time this was brought up we left it wondering why you had made program_check_exception() run with interrupts disabled. Any further ideas on that one?

- kumar
-
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/