11 Oct, 2006

11 commits

  • Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • All HCAs (not just mem-free) need a spare SRQ entry, so bump srq->max
    by 1 in all cases.

    Noted by Jack Morgenstein

    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Roland Dreier

    Michael S. Tsirkin
     
  • Signed-off-by: Roland Dreier

    Roland Dreier
     
  • Since pr_debug() has changed from a macro to an inline function when
    DEBUG is not defined, its arguments now need to be defined even when
    debugging is off. Therefore to_event_str() and to_qp_state_str() need
    to be moved out of #ifdef DEBUG. The compiler will throw the
    definitions away if DEBUG is not defined, but it needs to be able to
    see that the functions exist.

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • Currently a DREP is only sent in response to a DREQ if a connection
    has been found matching the DREQ, and it is in the proper state. Once
    a DREP is sent, the local connection moves into timewait. Duplicate
    DREQs received while in this state result in re-sending the DREP.

    However, it's likely that the local connection will enter and exit
    timewait before the remote side times out a lost DREP and resends a DREQ.
    To handle this, we send a DREP in response to a DREQ, even if a local
    connection is not found. This avoids maintaining disconnected
    id's in timewait states for excessively long times, just to handle a
    lost DREP.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Sean Hefty
     
  • If the ib_cm module is unloaded while id's are still in timewait, the
    CM will destroy the work queue used to process timewait. Once the
    id's exit timewait, their timers will fire, leading to a crash trying
    to access the destroyed work queue.

    We need to track id's that are in timewait, and cancel their deferred
    work on module unload.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Sean Hefty
     
  • Fill in "max_vl_num" (encoded according to VLCap field in the PortInfo MAD)
    and "init_type_reply" values in the ib_query_port() verb.

    Signed-off-by: Jack Morgenstein
    Signed-off-by: Roland Dreier

    Jack Morgenstein
     
  • Enable multiple concurrent connections to the same SRP target:

    1) Use port GUID instead of node GUID in the initiator port
    identifier. This allows connections to be made from multiple HCA
    ports at the same time.
    2) Let the user specify the identifier extention when adding the
    device. This allows userspace to make multiple connections even
    from the same port, if it wants too.

    Without this, only one connection can be made from any given HCA, even
    if it has multiple ports, because we don't use multi-channel mode, so
    targets will only allow one connection from a given initiator port ID.

    Signed-off-by: Ishai Rabinovitz
    Signed-off-by: Michael S. Tsirkin
    Signed-off-by: Roland Dreier

    Ishai Rabinovitz
     
  • scsi_host_alloc() already allocates with kzalloc(), so the struct Scsi_Host
    is zeroed out, including the private data portion. Remove the redundant
    memset that zeros this out again in the SRP initiator.

    Signed-off-by: Ishai Rabinovitz
    Signed-off-by: Roland Dreier

    Ishai Rabinovitz
     
  • The AMSO driver was not thread-safe in the post WR code and had
    code that would sleep if the WR post FIFO was full. Since these
    functions can be called on interrupt level I changed the sleep to a
    udelay.

    Signed-off-by: Tom Tucker
    Signed-off-by: Roland Dreier

    Tom Tucker
     

10 Oct, 2006

29 commits