From mboxrd@z Thu Jan 1 00:00:00 1970 From: Randolph Chung Subject: Re: [PATCH] fix BUG: sleeping function called from invalid context at mm/slab.c:3044 Date: Thu, 18 Dec 2008 18:23:26 +0800 Message-ID: <494A249E.9070405@tausq.org> References: <494983DE.2050105@gmx.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Cc: linux-parisc To: Helge Deller Return-path: In-Reply-To: <494983DE.2050105@gmx.de> List-ID: List-Id: linux-parisc.vger.kernel.org i knew there was a reason why this was a stack variable before... ;-) (of course, that is not ideal either) randolph Helge Deller wrote: > Since unwind_frame_init_from_blocked_task() may be called from > interrupt/in_atomic context, it needs to kmalloc() memory with > GFP_ATOMIC instead of GFP_KERNEL. > > This fixes this warning (ShowTasks called from sysrq handler): > > BUG: sleeping function called from invalid context at mm/slab.c:3044 > in_atomic(): 1, irqs_disabled(): 1, pid: 2119, name: miniruby > Backtrace: > [<10132e78>] __might_sleep+0x4c/0x118 > [<1018f644>] kmem_cache_alloc+0x2c/0xb4 > [<1011bae0>] unwind_frame_init_from_blocked_task+0x30/0xa0 > [<1010fd3c>] parisc_show_stack+0x3c/0xac > [<10132c7c>] show_state_filter+0x80/0xd8 > [<102f4074>] __handle_sysrq+0xd0/0x1b0 > [<102f9558>] receive_chars+0x22c/0x318 > [<102f9940>] serial8250_handle_port+0x40/0x88 > [<102f9a8c>] serial8250_interrupt+0x104/0x10c > [<10161920>] handle_IRQ_event+0x44/0x94 > [<10161acc>] __do_IRQ+0x15c/0x1dc > [<102c442c>] superio_interrupt+0x74/0xa8 > [<10161920>] handle_IRQ_event+0x44/0x94 > [<10161acc>] __do_IRQ+0x15c/0x1dc > [<10110fb4>] do_cpu_irq_mask+0x90/0xbc > [<10114068>] intr_return+0x0/0x4 > > Signed-off-by: Helge Deller >