• O
    lockdep: Fix check_usage_backwards() error message · 48d50674
    Oleg Nesterov 提交于
    Lockdep has found the real bug, but the output doesn't look right to me:
    
    > =========================================================
    > [ INFO: possible irq lock inversion dependency detected ]
    > 2.6.33-rc5 #77
    > ---------------------------------------------------------
    > emacs/1609 just changed the state of lock:
    >  (&(&tty->ctrl_lock)->rlock){+.....}, at: [<ffffffff8127c648>] tty_fasync+0xe8/0x190
    > but this lock took another, HARDIRQ-unsafe lock in the past:
    >  (&(&sighand->siglock)->rlock){-.....}
    
    "HARDIRQ-unsafe" and "this lock took another" looks wrong, afaics.
    
    >   ... key      at: [<ffffffff81c054a4>] __key.46539+0x0/0x8
    >   ... acquired at:
    >    [<ffffffff81089af6>] __lock_acquire+0x1056/0x15a0
    >    [<ffffffff8108a0df>] lock_acquire+0x9f/0x120
    >    [<ffffffff81423012>] _raw_spin_lock_irqsave+0x52/0x90
    >    [<ffffffff8127c1be>] __proc_set_tty+0x3e/0x150
    >    [<ffffffff8127e01d>] tty_open+0x51d/0x5e0
    
    The stack-trace shows that this lock (ctrl_lock) was taken under
    ->siglock (which is hopefully irq-safe).
    
    This is a clear typo in check_usage_backwards() where we tell the print a
    fancy routine we're forwards.
    Signed-off-by: NOleg Nesterov <oleg@redhat.com>
    Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <20100126181641.GA10460@redhat.com>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    48d50674
lockdep.c 90.5 KB