1. 13 12月, 2006 1 次提交
    • 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
  2. 12 12月, 2006 2 次提交
  3. 11 12月, 2006 13 次提交
  4. 10 12月, 2006 2 次提交
  5. 09 12月, 2006 6 次提交
  6. 08 12月, 2006 3 次提交
    • L
      Add "run_scheduled_work()" workqueue function · 68380b58
      Linus Torvalds 提交于
      This allows workqueue users to run just their own pending work, rather
      than wait for the whole workqueue to finish running.  This solves the
      deadlock with networking libphy that was due to other workqueue entries
      possibly needing a lock that was held by the routine that wanted to
      flush its own work.
      
      It's not wonderful: if you absolutely need to synchronize with the work
      function having been executed, any user strictly speaking should have
      its own completion tracking logic, since when we run things explicitly
      by hand, the generic workqueue layer can no longer help us synchronize.
      
      Also, this is strictly only usable for work that has been scheduled
      without any delayed timers.  You can not mix the new interface with
      schedule_delayed_work().
      
      But it's better than what we had currently.
      Acked-by: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      68380b58
    • R
      [PATCH] Pass struct dev pointer to dma_cache_sync() · d3fa72e4
      Ralf Baechle 提交于
      Pass struct dev pointer to dma_cache_sync()
      
      dma_cache_sync() is ill-designed in that it does not have a struct device
      pointer argument which makes proper support for systems that consist of a
      mix of coherent and non-coherent DMA devices hard.  Change dma_cache_sync
      to take a struct device pointer as first argument and fix all its callers
      to pass it.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      Cc: James Bottomley <James.Bottomley@steeleye.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Greg KH <greg@kroah.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d3fa72e4
    • N
      [PATCH] Add include/linux/freezer.h and move definitions from sched.h · 7dfb7103
      Nigel Cunningham 提交于
      Move process freezing functions from include/linux/sched.h to freezer.h, so
      that modifications to the freezer or the kernel configuration don't require
      recompiling just about everything.
      
      [akpm@osdl.org: fix ueagle driver]
      Signed-off-by: NNigel Cunningham <nigel@suspend2.net>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Pavel Machek <pavel@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7dfb7103
  7. 07 12月, 2006 13 次提交