1. 18 Jan, 2008 8 commits
  2. 17 Jan, 2008 27 commits
  3. 16 Jan, 2008 5 commits
    • Linus Torvalds's avatar
      Merge branch 'v2.6.24-rc7-lockdep' of... · d8c89eb3
      Linus Torvalds authored
      Merge branch 'v2.6.24-rc7-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep
      
      * 'v2.6.24-rc7-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep:
        lockdep: more hardirq annotations for notify_die()
        lockdep: fix workqueue creation API lockdep interaction
        lockdep: fix internal double unlock during self-test
      d8c89eb3
    • Tejun Heo's avatar
      sysfs: fix bugs in sysfs_rename/move_dir() · 456ef155
      Tejun Heo authored
      sysfs_rename/move_dir() have the following bugs.
      
       - On dentry lookup failure, kfree() is called on ERR_PTR() value.
       - sysfs_move_dir() has an extra dput() on success path.
      
      Fix them.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      456ef155
    • Tejun Heo's avatar
      sysfs: make sysfs_lookup() return ERR_PTR(-ENOENT) on failed lookup · e49452c6
      Tejun Heo authored
      sysfs tries to keep dcache a strict subset of sysfs_dirent tree by
      shooting down dentries when a node is removed, that is, no negative
      dentry for sysfs.  However, the lookup function returned NULL and thus
      created negative dentries when the target node didn't exist.
      
      Make sysfs_lookup() return ERR_PTR(-ENOENT) on lookup failure.  This
      fixes the NULL dereference bug in sysfs_get_dentry() discovered by
      bluetooth rfcomm device moving around.
      Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e49452c6
    • Peter Zijlstra's avatar
      lockdep: more hardirq annotations for notify_die() · fb1dac90
      Peter Zijlstra authored
      On Sat, 2007-12-29 at 18:06 +0100, Marcin Slusarz wrote:
      > Hi
      > Today I've got this (while i was upgrading my gentoo box):
      >
      > WARNING: at kernel/lockdep.c:2658 check_flags()
      > Pid: 21680, comm: conftest Not tainted 2.6.24-rc6 #63
      >
      > Call Trace:
      >  [<ffffffff80253457>] check_flags+0x1c7/0x1d0
      >  [<ffffffff80257217>] lock_acquire+0x57/0xc0
      >  [<ffffffff8024d5c0>] __atomic_notifier_call_chain+0x60/0xd0
      >  [<ffffffff8024d641>] atomic_notifier_call_chain+0x11/0x20
      >  [<ffffffff8024d67e>] notify_die+0x2e/0x30
      >  [<ffffffff8020da0a>] do_divide_error+0x5a/0xa0
      >  [<ffffffff80522bdd>] trace_hardirqs_on_thunk+0x35/0x3a
      >  [<ffffffff80255b89>] trace_hardirqs_on+0xd9/0x180
      >  [<ffffffff80522bdd>] trace_hardirqs_on_thunk+0x35/0x3a
      >  [<ffffffff80523c2d>] error_exit+0x0/0xa9
      >
      > possible reason: unannotated irqs-off.
      > irq event stamp: 4693
      > hardirqs last  enabled at (4693): [<ffffffff80522bdd>] trace_hardirqs_on_thunk+0x35/0x3a
      > hardirqs last disabled at (4692): [<ffffffff80522c17>] trace_hardirqs_off_thunk+0x35/0x37
      > softirqs last  enabled at (3546): [<ffffffff80238343>] __do_softirq+0xb3/0xd0
      > softirqs last disabled at (3521): [<ffffffff8020c97c>] call_softirq+0x1c/0x30
      
      more early fixups for notify_die()..
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      fb1dac90
    • Johannes Berg's avatar
      lockdep: fix workqueue creation API lockdep interaction · eb13ba87
      Johannes Berg authored
      Dave Young reported warnings from lockdep that the workqueue API
      can sometimes try to register lockdep classes with the same key
      but different names. This is not permitted in lockdep.
      
      Unfortunately, I was unaware of that restriction when I wrote
      the code to debug workqueue problems with lockdep and used the
      workqueue name as the lockdep class name. This can obviously
      lead to the problem if the workqueue name is dynamic.
      
      This patch solves the problem by always using a constant name
      for the workqueue's lockdep class, namely either the constant
      name that was passed in or a string consisting of the variable
      name.
      Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      eb13ba87