Re: BUG: sleeping function called from invalid context atmm/slab.c:3060

From: Russell King - ARM Linux
Date: Sun Oct 06 2013 - 04:42:06 EST


On Sun, Oct 06, 2013 at 03:58:11PM +0800, Fengguang Wu wrote:
> Greetings,
>
> I got the below dmesg and the first bad commit is
>
> commit c817a67ecba7c3c2aaa104796d78f160af60920d
> Author: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
> Date: Thu Jun 27 15:06:14 2013 +0100
>
> kobject: delayed kobject release: help find buggy drivers
>
> Implement debugging for kobject release functions. kobjects are
> reference counted, so the drop of the last reference to them is not
> predictable. However, the common case is for the last reference to be
> the kobject's removal from a subsystem, which results in the release
> function being immediately called.
>
> This can hide subtle bugs, which can occur when another thread holds a
> reference to the kobject at the same time that a kobject is removed.
> This results in the release method being delayed.
>
> In order to make these kinds of problems more visible, the following
> patch implements a delayed release; this has the effect that the
> release function will be out of order with respect to the removal of
> the kobject in the same manner that it would be if a reference was
> being held.
>
> This provides us with an easy way to allow driver writers to debug
> their drivers and fix otherwise hidden problems.
>
> Signed-off-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>
> mount: mounting proc on /proc failed: No such device
> grep: /proc/filesystems: No such file or directory
> [ 4.188118] BUG: sleeping function called from invalid context at mm/slab.c:3060
> [ 4.190236] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper/0
> [ 4.191696] 1 lock held by swapper/0/0:
> Starting Bootlog daemon:
> [ 4.192991] #0: (H

Sorry, I don't believe this one. This patch adds no new allocation.
How does device_not_available() end up being called, or
math_state_restore() ?
--
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/