1. 02 6月, 2015 1 次提交
  2. 21 5月, 2015 2 次提交
  3. 19 5月, 2015 1 次提交
  4. 13 5月, 2015 1 次提交
  5. 12 5月, 2015 1 次提交
  6. 06 5月, 2015 1 次提交
  7. 05 5月, 2015 5 次提交
  8. 17 4月, 2015 1 次提交
    • M
      cxgb4: drop __GFP_NOFAIL allocation · f72f116a
      Michal Hocko 提交于
      set_filter_wr is requesting __GFP_NOFAIL allocation although it can return
      ENOMEM without any problems obviously (t4_l2t_set_switching does that
      already).  So the non-failing requirement is too strong without any
      obvious reason.  Drop __GFP_NOFAIL and reorganize the code to have the
      failure paths easier.
      
      The same applies to _c4iw_write_mem_dma_aligned which uses __GFP_NOFAIL
      and then checks the return value and returns -ENOMEM on failure.  This
      doesn't make any sense what so ever.  Either the allocation cannot fail or
      it can.
      
      del_filter_wr seems to be safe as well because the filter entry is not
      marked as pending and the return value is propagated up the stack up to
      c4iw_destroy_listen.
      Signed-off-by: NMichal Hocko <mhocko@suse.cz>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: "Theodore Ts'o" <tytso@mit.edu>
      Cc: Mel Gorman <mgorman@suse.de>
      Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Hariprasad S <hariprasad@chelsio.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f72f116a
  9. 19 2月, 2015 1 次提交
  10. 18 2月, 2015 1 次提交
  11. 14 2月, 2015 1 次提交
  12. 26 1月, 2015 1 次提交
  13. 16 1月, 2015 4 次提交
  14. 13 1月, 2015 2 次提交
  15. 06 1月, 2015 1 次提交
  16. 16 12月, 2014 6 次提交
    • H
      RDMA/cxgb4: Handle NET_XMIT return codes · e6b11163
      Hariprasad S 提交于
      cxgb4_create_server() and cxgb4_create_server6() return NET_XMIT_*
      values or a negative errno. iw_cxgb4 need to handle this correctly.
      Signed-off-by: NHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      e6b11163
    • S
      RDMA/cxgb4: Wake up waiters after flushing the qp · 5b341808
      Steve Wise 提交于
      When transitioning into ERROR state, the QP was getting flushed after
      waking up any waiters.  This can cause applications to miss flushed work
      requests which can stall an NFS mount.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      5b341808
    • H
      RDMA/cxgb4: Limit MRs to < 8GB for T4/T5 devices · 2550a88d
      Hariprasad Shenai 提交于
      T4/T5 hardware can't handle MRs >= 8GB due to a hardware bug.  So limit
      registrations to < 8GB for thse devices.
      
      Based on original work by Steve Wise <swise@opengridcomputing.com>.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      2550a88d
    • H
      RDMA/cxgb4: Fix locking issue in process_mpa_request · 10be6b48
      Hariprasad Shenai 提交于
      Fix the following lockdep report:
      
          =============================================
          [ INFO: possible recursive locking detected ]
          3.17.0+ #3 Tainted: G            E
          ---------------------------------------------
          kworker/u64:3/299 is trying to acquire lock:
           (&epc->mutex){+.+.+.}, at: [<ffffffffa074e07a>]
          process_mpa_request+0x1aa/0x3e0 [iw_cxgb4]
      
          but task is already holding lock:
           (&epc->mutex){+.+.+.}, at: [<ffffffffa074e34e>] rx_data+0x9e/0x1f0 [iw_cxgb4]
      
          other info that might help us debug this:
           Possible unsafe locking scenario:
      
                 CPU0
                 ----
            lock(&epc->mutex);
            lock(&epc->mutex);
      
           *** DEADLOCK ***
      
           May be due to missing lock nesting notation
      
          3 locks held by kworker/u64:3/299:
           #0:  ("%s""iw_cxgb4"){.+.+.+}, at: [<ffffffff8106f14d>]
          process_one_work+0x13d/0x4d0
           #1:  (skb_work){+.+.+.}, at: [<ffffffff8106f14d>] process_one_work+0x13d/0x4d0
           #2:  (&epc->mutex){+.+.+.}, at: [<ffffffffa074e34e>] rx_data+0x9e/0x1f0
          [iw_cxgb4]
      
          stack backtrace:
          CPU: 2 PID: 299 Comm: kworker/u64:3 Tainted: G            E  3.17.0+ #3
          Hardware name: Dell Inc. PowerEdge T110/0X744K, BIOS 1.2.1 01/28/2010
          Workqueue: iw_cxgb4 process_work [iw_cxgb4]
           ffff8800b91593d0 ffff8800b8a2f9f8 ffffffff815df107 0000000000000001
           ffff8800b9158750 ffff8800b8a2fa28 ffffffff8109f0e2 ffff8800bb768a00
           ffff8800b91593d0 ffff8800b9158750 0000000000000000 ffff8800b8a2fa88
          Call Trace:
           [<ffffffff815df107>] dump_stack+0x49/0x62
           [<ffffffff8109f0e2>] print_deadlock_bug+0xf2/0x100
           [<ffffffff810a0f04>] validate_chain+0x454/0x700
           [<ffffffff810a1574>] __lock_acquire+0x3c4/0x580
           [<ffffffffa074e07a>] ? process_mpa_request+0x1aa/0x3e0 [iw_cxgb4]
           [<ffffffff810a17cc>] lock_acquire+0x9c/0x110
           [<ffffffffa074e07a>] ? process_mpa_request+0x1aa/0x3e0 [iw_cxgb4]
           [<ffffffff815e111b>] mutex_lock_nested+0x4b/0x360
           [<ffffffffa074e07a>] ? process_mpa_request+0x1aa/0x3e0 [iw_cxgb4]
           [<ffffffff810c181a>] ? del_timer_sync+0xaa/0xd0
           [<ffffffff810c1770>] ? try_to_del_timer_sync+0x70/0x70
           [<ffffffffa074e07a>] process_mpa_request+0x1aa/0x3e0 [iw_cxgb4]
           [<ffffffffa074a3ec>] ? update_rx_credits+0xec/0x140 [iw_cxgb4]
           [<ffffffffa074e381>] rx_data+0xd1/0x1f0 [iw_cxgb4]
           [<ffffffff8109ff23>] ? mark_held_locks+0x73/0xa0
           [<ffffffff815e4b90>] ? _raw_spin_unlock_irqrestore+0x40/0x70
           [<ffffffff810a020d>] ? trace_hardirqs_on_caller+0xfd/0x1c0
           [<ffffffff810a02dd>] ? trace_hardirqs_on+0xd/0x10
           [<ffffffffa074c931>] process_work+0x51/0x80 [iw_cxgb4]
           [<ffffffff8106f1c8>] process_one_work+0x1b8/0x4d0
           [<ffffffff8106f14d>] ? process_one_work+0x13d/0x4d0
           [<ffffffff8106f600>] worker_thread+0x120/0x3c0
           [<ffffffff8106f4e0>] ? process_one_work+0x4d0/0x4d0
           [<ffffffff81074a0e>] kthread+0xde/0x100
           [<ffffffff815e4b40>] ? _raw_spin_unlock_irq+0x30/0x40
           [<ffffffff81074930>] ? __init_kthread_worker+0x70/0x70
           [<ffffffff815e512c>] ret_from_fork+0x7c/0xb0
           [<ffffffff81074930>] ? __init_kthread_worker+0x70/0x70
      
      Based on original work by Steve Wise <swise@opengridcomputing.com>.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      10be6b48
    • P
      RDMA/cxgb4: Configure 0B MRs to match HW implementation · 123bc2a2
      Pramod Kumar 提交于
      0B MRs need some tweaks to work correctly with HW. When writing the
      TPTE, if the MR length is zero we now:
      
      1) turn off all permissions
      2) set the length to -1
      
      While functionality/capabilities of the MR are the same with these
      changes, it resolves a dapltest 0B RDMA Read test failure.  Based on
      original work by Steve Wise <swise@opengridcomputing.com>.
      Signed-off-by: NPramod Kumar <pramod@chelsio.com>
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NHariprasad Shenai <hariprasad@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      123bc2a2
    • P
      RDMA/cxgb4: Increase epd buff size for debug interface · 63a71ba6
      Pramod Kumar 提交于
      IPv6 address string lengths require increasing the buffer size for
      debugfs handlers.
      Signed-off-by: NPramod Kumar <pramod@chelsio.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      63a71ba6
  17. 23 11月, 2014 3 次提交
  18. 14 11月, 2014 1 次提交
  19. 11 11月, 2014 1 次提交
  20. 14 10月, 2014 4 次提交
  21. 02 8月, 2014 1 次提交
    • S
      RDMA/cxgb4: Only call CQ completion handler if it is armed · 678ea9b5
      Steve Wise 提交于
      The function __flush_qp() always calls the ULP's CQ completion handler
      functions even if the CQ was not armed.  This can crash the system if
      the function pointer is NULL. The iSER ULP behaves this way: no
      completion handler and never arm the CQ for notification.  So now we
      track whether the CQ is armed at flush time and only call the
      completion handlers if their CQs were armed.
      
      Also, if the RCQ and SCQ are the same CQ, the completion handler is
      getting called twice.  It should only be called once after all SQ and
      RQ WRs are flushed from the QP.  So rearrange the logic to fix this.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      678ea9b5