1. 03 7月, 2013 1 次提交
    • B
      cxgb3: Missing rtnl lock in error recovery · 7cc47d13
      Benjamin Herrenschmidt 提交于
      When exercising error injection on IBM pseries machine, I hit the
      following warning:
      
      [  251.450043] RTAS: event: 89, Type: Platform Error, Severity: 2
      [  253.549822] cxgb3 0006:01:00.0: enabling device (0140 -> 0142)
      [  253.713560] cxgb3 0006:01:00.0: adapter recovering, PEX ERR 0x100
      [  254.895437] RTNL: assertion failed at net/core/dev.c (2031)
      [  254.895467] CPU: 6 PID: 5449 Comm: eehd Tainted: G        W    3.10.0-rc7-00157-gea461abf #19
      [  254.895474] Call Trace:
      [  254.895483] [c000000fac56f7d0] [c000000000014dcc] .show_stack+0x7c/0x1f0 (unreliable)
      [  254.895493] [c000000fac56f8a0] [c0000000007ba318] .dump_stack+0x28/0x3c
      [  254.895500] [c000000fac56f910] [c0000000006c0384] .netif_set_real_num_tx_queues+0x224/0x230
      [  254.895515] [c000000fac56f9b0] [d00000000ef35510] .cxgb_open+0x80/0x3f0 [cxgb3]
      [  254.895525] [c000000fac56fa50] [d00000000ef35914] .t3_resume_ports+0x94/0x100 [cxgb3]
      [  254.895533] [c000000fac56fae0] [c00000000005fc8c] .eeh_report_resume+0x8c/0xd0
      [  254.895539] [c000000fac56fb60] [c00000000005e9fc] .eeh_pe_dev_traverse+0x9c/0x190
      [  254.895545] [c000000fac56fc10] [c000000000060000] .eeh_handle_event+0x110/0x330
      [  254.895551] [c000000fac56fca0] [c000000000060350] .eeh_event_handler+0x130/0x1a0
      [  254.895558] [c000000fac56fd30] [c0000000000ad758] .kthread+0xe8/0xf0
      [  254.895566] [c000000fac56fe30] [c00000000000a05c] .ret_from_kernel_thread+0x5c/0x80
      
      It appears that t3_resume_ports() is called with the rtnl_lock held from
      the fatal error task but not from the PCI error callbacks. This fixes it.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7cc47d13
  2. 05 6月, 2013 1 次提交
  3. 29 5月, 2013 1 次提交
  4. 23 5月, 2013 2 次提交
  5. 20 4月, 2013 3 次提交
  6. 05 2月, 2013 1 次提交
  7. 18 1月, 2013 1 次提交
  8. 15 1月, 2013 1 次提交
  9. 09 1月, 2013 1 次提交
  10. 08 1月, 2013 1 次提交
  11. 05 1月, 2013 1 次提交
  12. 08 12月, 2012 2 次提交
  13. 04 12月, 2012 1 次提交
  14. 01 11月, 2012 1 次提交
  15. 08 9月, 2012 1 次提交
  16. 24 8月, 2012 1 次提交
  17. 21 8月, 2012 1 次提交
    • T
      workqueue: deprecate flush[_delayed]_work_sync() · 43829731
      Tejun Heo 提交于
      flush[_delayed]_work_sync() are now spurious.  Mark them deprecated
      and convert all users to flush[_delayed]_work().
      
      If you're cc'd and wondering what's going on: Now all workqueues are
      non-reentrant and the regular flushes guarantee that the work item is
      not pending or running on any CPU on return, so there's no reason to
      use the sync flushes at all and they're going away.
      
      This patch doesn't make any functional difference.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Ian Campbell <ian.campbell@citrix.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Mattia Dongili <malattia@linux.it>
      Cc: Kent Yoder <key@linux.vnet.ibm.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jiri Kosina <jkosina@suse.cz>
      Cc: Karsten Keil <isdn@linux-pingi.de>
      Cc: Bryan Wu <bryan.wu@canonical.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Alasdair Kergon <agk@redhat.com>
      Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: linux-wireless@vger.kernel.org
      Cc: Anton Vorontsov <cbou@mail.ru>
      Cc: Sangbeom Kim <sbkim73@samsung.com>
      Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Eric Van Hensbergen <ericvh@gmail.com>
      Cc: Takashi Iwai <tiwai@suse.de>
      Cc: Steven Whitehouse <swhiteho@redhat.com>
      Cc: Petr Vandrovec <petr@vandrovec.name>
      Cc: Mark Fasheh <mfasheh@suse.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Avi Kivity <avi@redhat.com> 
      43829731
  18. 20 7月, 2012 1 次提交
  19. 11 7月, 2012 1 次提交
  20. 05 7月, 2012 3 次提交
  21. 07 6月, 2012 1 次提交
    • J
      ethernet: Remove casts to same type · 64699336
      Joe Perches 提交于
      Adding casts of objects to the same type is unnecessary
      and confusing for a human reader.
      
      For example, this cast:
      
              int y;
              int *p = (int *)&y;
      
      I used the coccinelle script below to find and remove these
      unnecessary casts.  I manually removed the conversions this
      script produces of casts with __force, __iomem and __user.
      
      @@
      type T;
      T *p;
      @@
      
      -       (T *)p
      +       p
      
      A function in atl1e_main.c was passed a const pointer
      when it actually modified elements of the structure.
      
      Change the argument to a non-const pointer.
      
      A function in stmmac needed a __force to avoid a sparse
      warning.  Added it.
      Signed-off-by: NJoe Perches <joe@perches.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      64699336
  22. 01 5月, 2012 1 次提交
    • R
      cxgb3: Don't call cxgb_vlan_mode until q locks are initialized · 60158e64
      Roland Dreier 提交于
      The driver calls cxgb_vlan_mode() from init_one().  This calls into
      synchronize_rx(), which locks all the q locks, but the q locks are not
      initialized until cxgb_up() -> setup_sge_qsets().  So move the call to
      cxgb_vlan_mode() into cxgb_up(), after the call to setup_sge_qsets().
      We also move the body of these functions up higher to avoid having to
      a forward declaration.
      
      This was found because of the lockdep warning:
      
          INFO: trying to register non-static key.
          the code is fine but needs lockdep annotation.
          turning off the locking correctness validator.
          Pid: 323, comm: work_for_cpu Not tainted 3.4.0-rc5 #28
          Call Trace:
           [<ffffffff8106e767>] register_lock_class+0x108/0x2d0
           [<ffffffff8106ff42>] __lock_acquire+0xd3/0xd06
           [<ffffffff81070fd0>] lock_acquire+0xbf/0xfe
           [<ffffffff813862a6>] _raw_spin_lock_irq+0x36/0x45
           [<ffffffffa01e71aa>] cxgb_vlan_mode+0x96/0xcb [cxgb3]
           [<ffffffffa01f90eb>] init_one+0x8c4/0x980 [cxgb3]
           [<ffffffff811fcbf0>] local_pci_probe+0x3f/0x70
           [<ffffffff81042206>] do_work_for_cpu+0x10/0x22
           [<ffffffff810482de>] kthread+0xa1/0xa9
           [<ffffffff8138e234>] kernel_thread_helper+0x4/0x10
      
      Contrary to what lockdep says, the code is not fine: we are locking an
      uninitialized spinlock.
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      60158e64
  23. 24 2月, 2012 1 次提交
  24. 16 2月, 2012 1 次提交
  25. 06 12月, 2011 3 次提交
  26. 24 11月, 2011 1 次提交
  27. 23 11月, 2011 1 次提交
  28. 17 11月, 2011 1 次提交
  29. 14 11月, 2011 1 次提交
  30. 01 11月, 2011 1 次提交
  31. 19 10月, 2011 1 次提交
  32. 08 10月, 2011 1 次提交