Re: [signal:execve2] BUG: sleeping function called from sys_brk

From: Al Viro
Date: Fri Aug 03 2012 - 06:03:03 EST


On Fri, Aug 03, 2012 at 05:30:28PM +0800, Fengguang Wu wrote:
> Hi Al,
>
> > I got a boot warning on commit
> >
> > tree: git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal.git execve2
> > head: 1ade99215ed3c334a544b9e1773602ff0f0251ab
> > commit: 1ade99215ed3c334a544b9e1773602ff0f0251ab [9/9] x86: switch to generic sys_execve and kernel_execve
>
> The same commit triggers other warnings (new config and dmesg attached):
>
> [ 18.315125] debug: unmapping init [mem 0x816b6000-0x81852fff]
> [ 18.318178] BUG: sleeping function called from invalid context at /c/kernel-tests/src/stable/kernel/rwsem.c:47
> [ 18.318243] in_atomic(): 0, irqs_disabled(): 1, pid: 1, name: init
> [ 18.318243] no locks held by init/1.
> [ 18.318243] Pid: 1, comm: init Not tainted 3.5.0-01258-g1ade992 #182
> [ 18.318243] Call Trace:
> [ 18.318243] [<8109e07d>] __might_sleep+0x13d/0x170
> [ 18.318243] [<813cea7c>] down_write+0x2c/0xd0
> [ 18.318243] [<81166ae9>] sys_brk+0x29/0x1f0
> [ 18.318243] [<813d22d0>] syscall_call+0x7/0xb

Ow... I think I understand what happened here, and I really don't like the
picture ;-/ Could you check if slapping regs->flags = X86_EFLAGS_IF;
in process_32.c:start__thread() gets rid of that?
--
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/