Skip to content
  • Pekka Enberg's avatar
    SLAB: Fix lockdep annotations · ec5a36f9
    Pekka Enberg authored
    Commit 8429db5c... ("slab: setup cpu caches later on when interrupts are
    enabled") broke mm/slab.c lockdep annotations:
    
      [   11.554715] =============================================
      [   11.555249] [ INFO: possible recursive locking detected ]
      [   11.555560] 2.6.31-rc1 #896
      [   11.555861] ---------------------------------------------
      [   11.556127] udevd/1899 is trying to acquire lock:
      [   11.556436]  (&nc->lock){-.-...}, at: [<ffffffff810c337f>] kmem_cache_free+0xcd/0x25b
      [   11.557101]
      [   11.557102] but task is already holding lock:
      [   11.557706]  (&nc->lock){-.-...}, at: [<ffffffff810c3cd0>] kfree+0x137/0x292
      [   11.558109]
      [   11.558109] other info that might help us debug this:
      [   11.558720] 2 locks held by udevd/1899:
      [   11.558983]  #0:  (&nc->lock){-.-...}, at: [<ffffffff810c3cd0>] kfree+0x137/0x292
      [   11.559734]  #1:  (&parent->list_lock){-.-...}, at: [<ffffffff810c36c7>] __drain_alien_cache+0x3b/0xbd
      [   11.560442]
      [   11.560443] stack backtrace:
      [   11.561009] Pid: 1899, comm: udevd Not tainted 2.6.31-rc1 #896
      [   11.561276] Call Trace:
      [   11.561632]  [<ffffffff81065ed6>] __lock_acquire+0x15ec/0x168f
      [   11.561901]  [<ffffffff81065f60>] ? __lock_acquire+0x1676/0x168f
      [   11.562171]  [<ffffffff81063c52>] ? trace_hardirqs_on_caller+0x113/0x13e
      [   11.562490]  [<ffffffff8150c337>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [   11.562807]  [<ffffffff8106603a>] lock_acquire+0xc1/0xe5
      [   11.563073]  [<ffffffff810c337f>] ? kmem_cache_free+0xcd/0x25b
      [   11.563385]  [<ffffffff8150c8fc>] _spin_lock+0x31/0x66
      [   11.563696]  [<ffffffff810c337f>] ? kmem_cache_free+0xcd/0x25b
      [   11.563964]  [<ffffffff810c337f>] kmem_cache_free+0xcd/0x25b
      [   11.564235]  [<ffffffff8109bf8c>] ? __free_pages+0x1b/0x24
      [   11.564551]  [<ffffffff810c3564>] slab_destroy+0x57/0x5c
      [   11.564860]  [<ffffffff810c3641>] free_block+0xd8/0x123
      [   11.565126]  [<ffffffff810c372e>] __drain_alien_cache+0xa2/0xbd
      [   11.565441]  [<ffffffff810c3ce5>] kfree+0x14c/0x292
      [   11.565752]  [<ffffffff8144a007>] skb_release_data+0xc6/0xcb
      [   11.566020]  [<ffffffff81449cf0>] __kfree_skb+0x19/0x86
      [   11.566286]  [<ffffffff81449d88>] consume_skb+0x2b/0x2d
      [   11.566631]  [<ffffffff8144cbe0>] skb_free_datagram+0x14/0x3a
      [   11.566901]  [<ffffffff81462eef>] netlink_recvmsg+0x164/0x258
      [   11.567170]  [<ffffffff81443461>] sock_recvmsg+0xe5/0xfe
      [   11.567486]  [<ffffffff810ab063>] ? might_fault+0xaf/0xb1
      [   11.567802]  [<ffffffff81053a78>] ? autoremove_wake_function+0x0/0x38
      [   11.568073]  [<ffffffff810d84ca>] ? core_sys_select+0x3d/0x2b4
      [   11.568378]  [<ffffffff81065f60>] ? __lock_acquire+0x1676/0x168f
      [   11.568693]  [<ffffffff81442dc1>] ? sockfd_lookup_light+0x1b/0x54
      [   11.568961]  [<ffffffff81444416>] sys_recvfrom+0xa3/0xf8
      [   11.569228]  [<ffffffff81063c8a>] ? trace_hardirqs_on+0xd/0xf
      [   11.569546]  [<ffffffff8100af2b>] system_call_fastpath+0x16/0x1b#
    
    Fix that up.
    
    Closes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=13654
    
    
    Tested-by: default avatarVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    ec5a36f9