1. 31 5月, 2015 3 次提交
  2. 25 5月, 2015 2 次提交
    • O
      net/mlx4_core: Modify port values when generting EQEs for VFs · 74d4943f
      Or Gerlitz 提交于
      As part of enabling single ported VFs over IB ports we need to handle
      some of the flows for generting EQ events for VFs which don't come
      into play under Eth ports.
      
      This mainly includes port management events derived from changes of the
      phyiscal port (lid change, client re-register, down/up, etc), VF pkey table
      changes and VF guid changes initiated by the IB driver.
      
      (1) make sure that events are generated only for VFs sitting on
          the relevant physical port (under the ALL_SLAVES flow).
      
      (2) before generating the event, convert from physical (one or two)
          to VF port (always equals one).
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NJack Morgenstein <jackm@dev.mellanox.co.il>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      74d4943f
    • O
      IB/mlx4: Convert slave port before building address-handle · 430910b1
      Or Gerlitz 提交于
      When multiplexling a MAD sent from VF, we should convert the port used
      by the guest to send the packet to the actual physical port which will be
      used to transmit the packet, before building the relevant address-handle (AH).
      
      This is needed under VPI for single ported VFs, since the code that builds
      the AH (mlx4_ib_query_ah()) makes decisions based on the input port. If we
      use the port number provided by the guest, it might have different protocol
      vs. the one this packat has to go from, and hence the result could be wrong.
      
      So far, the conversion was done after the AH was built and it worked for
      single ported Eth VFs which were not enabled under VPI. When adding support
      for single ported IB VFs and VPI, we hit that.
      
      Fixes: 449fc488 ('net/mlx4: Adapt code for N-Port VF')
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      430910b1
  3. 21 5月, 2015 2 次提交
    • M
      IB/cma: Fix broken AF_IB UD support · c07678bb
      Matthew Finlay 提交于
      Support for using UD and AF_IB is currently broken.  The
      IB_CM_SIDR_REQ_RECEIVED message is not handled properly in
      cma_save_net_info() and we end up falling into code that will try and
      process the request as ipv4/ipv6, which will end up failing.
      
      The resolution is to add a check for the SIDR_REQ and call
      cma_save_ib_info() with a NULL path record.  Change cma_save_ib_info()
      to copy the src sib info from the listen_id when the path record is NULL.
      Reported-by: NHari Shankar <Hari.Shankar@netapp.com>
      Signed-off-by: NMatt Finlay <matt@mellanox.com>
      Acked-by: NSean Hefty <sean.hefty@intel.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      c07678bb
    • T
      ib/cm: Change reject message type when destroying cm_id · c29ed5a4
      Ted Kim 提交于
      Problem reported by: Ted Kim <ted.h.kim@oracle.com>:
      
      We have a case where a Linux system and a non-Linux system are
      trying to interoperate.  The Linux host is the active side and
      starts the connection establishment, but later decides to not go
      through with the connection setup and does rdma_destroy_id().
      
      The rdma_destroy_id() eventually works its way down to cm_destroy_id()
      in core/cm.c, where a REJ is sent. The non-Linux system
      has some trouble recognizing the REJ because of:
      
      A. CM states which can't receive the REJ
      B. Some issues about REJ formatting (missing comm ID)
      
      ISSUE A: That part of the spec says, a Consumer Reject REJ can be
      sent for a connection abort, but it goes further
      and says: can send a REJ message with a "Consumer Reject"
      Reason code if they are in a CM state (i.e. REP
      Rcvd, MRA(REP) Sent, REQ Rcvd, MRA Sent) that allows
      a REJ to be sent (lines 35-38).
      
      Of the states listed there in that sentence, it would
      seem to limit the active side to using the Consumer Reject
      (for the abort case) in just the REP-Rcvd and MRA-REP-Sent
      states. That is basically only after the active side
      sees a REP (or alternatively goes down the state transitions
      to timeout in which case a Timeout REJ is sent).
      
      As a fix, in cm-destroy-id() move the IB-CM-MRA-REQ-RCVD case
      to the same as REQ-SENT.  Essentially, make a REJ sent after
      getting an MRA on active side a timeout rather than Consumer-
      Reject, which is arguably more correct with the CM state
      diagrams previous to getting a REP.
      Signed-off-by: NTed Kim <ted.h.kim@oracle.com>
      Signed-off-by: NSean Hefty <sean.hefty@intel.com>
      c29ed5a4
  4. 18 5月, 2015 9 次提交
  5. 13 5月, 2015 3 次提交
  6. 12 5月, 2015 2 次提交
  7. 06 5月, 2015 4 次提交
  8. 05 5月, 2015 12 次提交
  9. 18 4月, 2015 1 次提交
  10. 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
  11. 16 4月, 2015 1 次提交
    • S
      IB/iser: Rewrite bounce buffer code path · ba943fb2
      Sagi Grimberg 提交于
      In some rare cases, IO operations may be not aligned to page
      boundaries. This prevents iser from performing fast memory
      registration. In order to overcome that iser uses a bounce
      buffer to carry the transaction. We basically allocate a buffer
      in the size of the transaction and perform a copy.
      
      The buffer allocation using kmalloc is too restrictive since it
      requires higher order (atomic) allocations for large transactions
      (which may result in memory exhaustion fairly fast for some workloads).
      We rewrite the bounce buffer code path to allocate scattered pages
      and perform a copy between the transaction sg and the bounce sg.
      Reported-by: NAlex Lyakas <alex@zadarastorage.com>
      Signed-off-by: NSagi Grimberg <sagig@mellanox.com>
      Signed-off-by: NDoug Ledford <dledford@redhat.com>
      ba943fb2