1. 13 11月, 2008 4 次提交
    • Y
      IPoIB: Fix crash in path_rec_completion() · ff79ae80
      Yossi Etigin 提交于
      Fix a crash in path_rec_completion() during an SM up/down loop.  If
      more than one path record request is issued, the first completion
      releases path->done, allowing ipoib_flush_paths() to free the path,
      and thus corrupting it for the second completion.
      
      Commit ee1e2c82 ("IPoIB: Refresh paths instead of flushing them on SM
      change events") added the field path->valid and changed the test "if
      (!path)" to "if (!path || !path->valid)".  This change made it
      possible for a path with an outstanding query to pass the test and
      issue another query on the same path.  Having two queries on the same
      path leads to a crash.
      
      This fixes <https://bugs.openfabrics.org/show_bug.cgi?id=1325>.
      Signed-off-by: NYossi Etigin <yosefe@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      ff79ae80
    • Y
      IPoIB: Fix hang in ipoib_flush_paths() · 93a3ab93
      Yossi Etigin 提交于
      ipoib_flush_paths() can hang during an SM up/down loop: if
      path_rec_start() fails (for instance, because there is no sm_ah), the
      path is still added to the path list by neigh_add_path().  Then,
      ipoib_flush_paths() will wait for path->done, but it will never
      complete because the request was not issued at all.  Fix this by
      completing path->done if issuing the query fails.
      
      This fixes <https://bugs.openfabrics.org/show_bug.cgi?id=1329>.
      Signed-off-by: NYossi Etigin <yosefe@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      93a3ab93
    • Y
      IPoIB: Don't enable NAPI when it's already enabled · fe25c561
      Yossi Etigin 提交于
      If a P_Key is not present when an interface is created, ipoib_open()
      will return after doing napi_enable().  ipoib_open() will be called
      again from ipoib_pkey_poll() when the P_Key appears, after NAPI has
      already been enabled, and try to enable it again. This triggers a
      BUG_ON() in napi_enable().
      
      Fix this by moving the call to napi_enable() to after the test for
      P_Key presence.
      Signed-off-by: NYossi Etigin <yosefe@voltaire.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      fe25c561
    • S
      RDMA/cxgb3: Fix deadlock in iw_cxgb3 (hang when configuring interface) · b3e123cf
      Steve Wise 提交于
      When the iw_cxgb3 module's cxgb3_client "add" func gets called by the
      cxgb3 module, the iwarp driver ends up calling the ethtool ops
      get_drvinfo function in cxgb3 to get the fw version and other info.
      Currently the iwarp driver grabs the rtnl lock around this down call
      to serialize.  As of 2.6.27 or so, things changed such that the rtnl
      lock is held around the call to the netdev driver open function.  Also
      the cxgb3_client "add" function doesn't get called if the device is
      down.
      
      So, if you load cxgb3, then load iw_cxgb3, then ifconfig up the
      device, the iw_cxgb3 add func gets called with the rtnl_lock held.  If
      you load cxgb3, ifconfig up the device, then load iw_cxgb3, the add
      func gets called without the rtnl_lock held.  The former causes the
      deadlock, the latter does not.
      
      In addition, there are iw_cxgb3 sysfs handlers that also can call down
      into cxgb3 to gather the fw and hw versions.  These can be called
      concurrently on different processors and at any time.  Thus we need to
      push this serialization down in the cxgb3 driver get_drvinfo func.
      
      The fix is to remove rtnl lock usage, and use a per-device lock in cxgb3.
      Signed-off-by: NSteve Wise <swise@opengridcomputing.com>
      Acked-by: NDivy Le Ray <divy@chelsio.com>
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      b3e123cf
  2. 12 11月, 2008 1 次提交
  3. 06 11月, 2008 1 次提交
  4. 05 11月, 2008 1 次提交
  5. 03 11月, 2008 4 次提交
  6. 02 11月, 2008 1 次提交
  7. 28 10月, 2008 1 次提交
  8. 24 10月, 2008 26 次提交
  9. 23 10月, 2008 1 次提交