lkml.org 
[lkml]   [2006]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: 2.6.17-rc5-mm1
    On Tue, 30 May 2006 23:17:28 -0400
    Steven Rostedt <rostedt@goodmis.org> wrote:

    > Oh look what I found. It seems that little driver of Andrew's has come
    > back to haunt me :) And I think it has to do with that cute little
    > disable_irq in vortex_timer again.
    >
    >
    > ============================
    > [ BUG: illegal lock usage! ]
    > ----------------------------
    > illegal {in-hardirq-W} -> {hardirq-on-W} usage.
    > idle/0 [HC0[0]:SC1[2]:HE1:SE0] takes:
    > (&vp->lock){++..}, at: [<f8895b44>] vortex_timer+0x414/0x490 [3c59x]
    > {in-hardirq-W} state was registered at:
    > [<c013c759>] lockdep_acquire+0x59/0x70
    > [<c031a11d>] _spin_lock+0x3d/0x50
    > [<f8898983>] boomerang_interrupt+0x33/0x470 [3c59x]
    > [<c0147a11>] handle_IRQ_event+0x31/0x70
    > [<c0149304>] handle_level_irq+0xa4/0x100
    > [<c0105658>] do_IRQ+0x58/0x90
    > [<c010348d>] common_interrupt+0x25/0x2c
    > [<c010162d>] cpu_idle+0x4d/0xb0
    > [<c01002e5>] rest_init+0x45/0x50
    > [<c03f881a>] start_kernel+0x32a/0x460
    > [<c0100210>] 0xc0100210
    > irq event stamp: 220672
    > hardirqs last enabled at (220672): [<c031aa45>] _spin_unlock_irqrestore+0x65/00hardirqs last disabled at (220671): [<c031a5d6>] _spin_lock_irqsave+0x16/0x60
    > softirqs last enabled at (220658): [<c0124453>] __do_softirq+0xf3/0x110
    > softirqs last disabled at (220667): [<c01244e5>] do_softirq+0x75/0x80
    >
    > other info that might help us debug this:
    > no locks held by idle/0.
    >
    > stack backtrace:
    > <c01052bb> show_trace+0x1b/0x20 <c01052e6> dump_stack+0x26/0x30
    > <c013af5d> print_usage_bug+0x22d/0x240 <c013b591> mark_lock+0x621/0x6c0
    > <c013b6ff> __lockdep_acquire+0xcf/0xd30 <c013c759> lockdep_acquire+0x59/0x70
    > <c031a172> _spin_lock_bh+0x42/0x50 <f8895b44> vortex_timer+0x414/0x490 [3c59x] <c0128cf9> run_timer_softirq+0xc9/0x1a0 <c01243e7> __do_softirq+0x87/0x110
    > <c01244e5> do_softirq+0x75/0x80 <c0124650> irq_exit+0x50/0x60
    > <c01102a3> smp_apic_timer_interrupt+0x73/0x80 <c010354e> apic_timer_interrupt0 <c010162d> cpu_idle+0x4d/0xb0 <c010f2a5> start_secondary+0x455/0x500
    > <00000000> 0x0 <f7f85fb4> 0xf7f85fb4

    Without having looked at it very hard, I'd venture that this is a false
    positive - that driver uses disable_irq() to prevent reentry onto that
    lock.

    It does that because it knows it's about to spend a long time talking with
    the mii registers and it doesn't want to do that with interrupts disabled.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-05-31 06:13    [W:4.194 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site