1. 25 Dec, 2008 3 commits
  2. 24 Dec, 2008 2 commits
  3. 22 Dec, 2008 2 commits
  4. 21 Dec, 2008 2 commits
    • David Disseldorp's avatar
      IB/iser: Avoid recv buffer exhaustion caused by unexpected PDUs · bba7ebba
      David Disseldorp authored
      iSCSI/iSER targets may send PDUs without a prior request from the
      initiator.  RFC 5046 refers to these PDUs as "unexpected".  NOP-In PDUs
      with itt=RESERVED and Asynchronous Message PDUs occupy this category.
      
      The amount of active "unexpected" PDU's an iSER target may have at any
      time is governed by the MaxOutstandingUnexpectedPDUs key, which is not
      yet supported.
      
      Currently when an iSER target sends an "unexpected" PDU, the
      initiators recv buffer consumed by the PDU is not replaced.  If over
      initial_post_recv_bufs_num "unexpected" PDUs are received then the
      receive queue will run out of receive work requests entirely.
      
      This patch ensures recv buffers consumed by "unexpected" PDUs are
      replaced in the next iser_post_receive_control() call.
      Signed-off-by: default avatarDavid Disseldorp <ddiss@sgi.com>
      Signed-off-by: default avatarKen Sandars <ksandars@sgi.com>
      Acked-by: default avatarOr Gerlitz <ogerlitz@voltaire.com>
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      bba7ebba
    • Julia Lawall's avatar
      IB/ehca: Remove redundant test of vpage · 139cdab0
      Julia Lawall authored
      vpage is checked not to be NULL just after it is initialized at the
      beginning of each loop iteration.
      
      A simplified version of the semantic patch that makes this change is
      as follows: (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @r exists@
      local idexpression x;
      expression E;
      position p1,p2;
      @@
      
      if (x@p1 == NULL || ...) { ... when forall
         return ...; }
      ... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
      (
      x@p2 == NULL
      |
      x@p2 != NULL
      )
      
      // another path to the test that is not through p1?
      @s exists@
      local idexpression r.x;
      position r.p1,r.p2;
      @@
      
      ... when != x@p1
      (
      x@p2 == NULL
      |
      x@p2 != NULL
      )
      
      @fix depends on !s@
      position r.p1,r.p2;
      expression x,E;
      statement S1,S2;
      @@
      
      (
      - if ((x@p2 != NULL) || ...)
        S1
      |
      - if ((x@p2 == NULL) && ...) S1
      |
      - BUG_ON(x@p2 == NULL);
      )
      // </smpl>
      Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
      Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
      139cdab0
  5. 05 Dec, 2008 15 commits
  6. 02 Dec, 2008 16 commits