1. 13 12月, 2006 3 次提交
    • I
      [PATCH] net, 8139too.c: fix netpoll deadlock · b57bd066
      Ingo Molnar 提交于
      fix deadlock in the 8139too driver: poll handlers should never forcibly
      enable local interrupts, because they might be used by netpoll/printk
      from IRQ context.
      
        =================================
        [ INFO: inconsistent lock state ]
        2.6.19 #11
        ---------------------------------
        inconsistent {softirq-on-W} -> {in-softirq-W} usage.
        swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
         (&npinfo->poll_lock){-+..}, at: [<c0350a41>] net_rx_action+0x64/0x1de
        {softirq-on-W} state was registered at:
          [<c0134c86>] mark_lock+0x5b/0x39c
          [<c0135012>] mark_held_locks+0x4b/0x68
          [<c01351e9>] trace_hardirqs_on+0x115/0x139
          [<c02879e6>] rtl8139_poll+0x3d7/0x3f4
          [<c035c85d>] netpoll_poll+0x82/0x32f
          [<c035c775>] netpoll_send_skb+0xc9/0x12f
          [<c035cdcc>] netpoll_send_udp+0x253/0x25b
          [<c0288463>] write_msg+0x40/0x65
          [<c011cead>] __call_console_drivers+0x45/0x51
          [<c011cf16>] _call_console_drivers+0x5d/0x61
          [<c011d4fb>] release_console_sem+0x11f/0x1d8
          [<c011d7d7>] register_console+0x1ac/0x1b3
          [<c02883f8>] init_netconsole+0x55/0x67
          [<c010040c>] init+0x9a/0x24e
          [<c01049cf>] kernel_thread_helper+0x7/0x10
          [<ffffffff>] 0xffffffff
        irq event stamp: 819992
        hardirqs last  enabled at (819992): [<c0350a16>] net_rx_action+0x39/0x1de
        hardirqs last disabled at (819991): [<c0350b1e>] net_rx_action+0x141/0x1de
        softirqs last  enabled at (817552): [<c01214e4>] __do_softirq+0xa3/0xa8
        softirqs last disabled at (819987): [<c0106051>] do_softirq+0x5b/0xc9
      
        other info that might help us debug this:
        no locks held by swapper/1.
      
        stack backtrace:
         [<c0104d88>] dump_trace+0x63/0x1e8
         [<c0104f26>] show_trace_log_lvl+0x19/0x2e
         [<c010532d>] show_trace+0x12/0x14
         [<c0105343>] dump_stack+0x14/0x16
         [<c0134980>] print_usage_bug+0x23c/0x246
         [<c0134d33>] mark_lock+0x108/0x39c
         [<c01356a7>] __lock_acquire+0x361/0x9ed
         [<c0136018>] lock_acquire+0x56/0x72
         [<c03aff1f>] _spin_lock+0x35/0x42
         [<c0350a41>] net_rx_action+0x64/0x1de
         [<c0121493>] __do_softirq+0x52/0xa8
         [<c0106051>] do_softirq+0x5b/0xc9
         [<c0121338>] irq_exit+0x3c/0x48
         [<c0106163>] do_IRQ+0xa4/0xbd
         [<c01047c6>] common_interrupt+0x2e/0x34
         [<c011db92>] vprintk+0x2c0/0x309
         [<c011dbf6>] printk+0x1b/0x1d
         [<c01003f2>] init+0x80/0x24e
         [<c01049cf>] kernel_thread_helper+0x7/0x10
         =======================
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Acked-by: NJeff Garzik <jeff@garzik.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b57bd066
    • I
      [PATCH] lockdep: fix seqlock_init() · 99a3eb38
      Ingo Molnar 提交于
      seqlock_init() needs to use spin_lock_init() for dynamic locks, so that
      lockdep is notified about the presence of a new lock.
      
      (this is a fallout of the recent networking merge, which started using
      the so-far unused seqlock_init() API.)
      
      This fix solves the following lockdep-internal warning on current -git:
      
       INFO: trying to register non-static key.
       the code is fine but needs lockdep annotation.
       turning off the locking correctness validator.
           __lock_acquire+0x10c/0x9f9
           lock_acquire+0x56/0x72
           _spin_lock+0x35/0x42
           neigh_destroy+0x9d/0x12e
           neigh_periodic_timer+0x10a/0x15c
           run_timer_softirq+0x126/0x18e
           __do_softirq+0x6b/0xe6
           do_softirq+0x64/0xd2
           ksoftirqd+0x82/0x138
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      99a3eb38
    • L
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb · d907dd2e
      Linus Torvalds 提交于
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
        V4L/DVB (4954): Fix: On ia64, i2c adap->inb/adap->outb are wrongly evaluated
      d907dd2e
  2. 12 12月, 2006 37 次提交