• Nicholas Bellinger's avatar
    iser-target: Match FRMR descriptors to available session tags · f46d6a8a
    Nicholas Bellinger authored
    This patch changes isert_conn_create_fastreg_pool() to follow
    logic in iscsi_target_locate_portal() for determining how many
    FRMR descriptors to allocate based upon the number of possible
    per-session command slots that are available.
    
    This addresses an OOPs in isert_reg_rdma() where due to the
    use of ISCSI_DEF_XMIT_CMDS_MAX could end up returning a bogus
    fast_reg_descriptor when the number of active tags exceeded
    the original hardcoded max.
    
    Note this also includes moving isert_conn_create_fastreg_pool()
    from isert_connect_request() to isert_put_login_tx() before
    posting the final Login Response PDU in order to determine the
    se_nacl->queue_depth (eg: number of tags) per session the target
    will be enforcing.
    
    v2 changes:
      - Move isert_conn->conn_fr_pool list_head init into
        isert_conn_request()
    v3 changes:
      - Drop unnecessary list_empty() check in isert_reg_rdma()
        (Sagi)
    
    Cc: Sagi Grimberg <sagig@mellanox.com>
    Cc: Or Gerlitz <ogerlitz@mellanox.com>
    Cc: <stable@vger.kernel.org> #3.12+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    f46d6a8a
ib_isert.c 90 KB