Patch "iser-target: Add new state ISER_CONN_BOUND to isert_conn" has been added to the 4.4-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
iser-target: Add new state ISER_CONN_BOUND to isert_conn
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
iser-target-add-new-state-iser_conn_bound-to-isert_conn.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
aea92980601f7ddfcb3c54caa53a43726314fe46Mon Sep 17 00:00:00 2001
From: Jenny Derzhavetz <[email protected]>
Date: Wed, 24 Feb 2016 19:23:59 +0200
Subject: iser-target: Add new state ISER_CONN_BOUND to isert_conn
From: Jenny Derzhavetz <[email protected]>
commit aea92980601f7ddfcb3c54caa53a43726314fe46 upstream.
We need an indication that isert_conn->iscsi_conn binding has happened so we'll know not to invoke a connection reinstatement on an unbound connection which will lead to a bogus isert_conn->conn dereferece.
--- drivers/infiniband/ulp/isert/ib_isert.c | 7 +++++-- drivers/infiniband/ulp/isert/ib_isert.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-)
drivers/infiniband/ulp/isert/ib_isert.c +5 -2
@@ -820,7 +820,7 @@ isert_put_conn(struct isert_conn *isert_* @isert_conn: isert connection struct * * Notes: -* In case the connection state is FULL_FEATURE, move state +* In case the connection state is BOUND, move state * to TEMINATING and start teardown sequence (rdma_disconnect). * In case the connection state is UP, complete flush as well. *
@@ -836,6 +836,7 @@ isert_conn_terminate(struct isert_conn *case ISER_CONN_TERMINATING :break ;case ISER_CONN_UP : +case ISER_CONN_BOUND :case ISER_CONN_FULL_FEATURE :/* FALLTHRU */ isert_info ("Terminating conn %p state %d\n" , isert_conn, isert_conn->state);
@@ -2062,7 +2063,8 @@ isert_cq_comp_err(struct isert_conn *iseisert_completion_put (desc, isert_cmd, ib_dev, true); }else { isert_conn->post_recv_buf_count--; -if (!isert_conn->post_recv_buf_count) +if (!isert_conn->post_recv_buf_count && + isert_conn->state >=ISER_CONN_BOUND )iscsit_cause_connection_reinstatement (isert_conn->conn,0 ); } }
@@ -3194,6 +3196,7 @@ accept_wait: conn->context = isert_conn; isert_conn->conn = conn; + isert_conn->state =ISER_CONN_BOUND ;isert_set_conn_info (np, conn, isert_conn);
drivers/infiniband/ulp/isert/ib_isert.h +1 -0
@@ -50,6 +50,7 @@ enum iser_ib_op_code {enum iser_conn_state {ISER_CONN_INIT ,ISER_CONN_UP , +ISER_CONN_BOUND ,ISER_CONN_FULL_FEATURE ,ISER_CONN_TERMINATING ,ISER_CONN_DOWN ,
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/iser-target-fix-identification-of-login-rx-descriptor-type.patch queue-4.4/iser-target-add-new-state-iser_conn_bound-to-isert_conn.patch queue-4.4/iser-target-rework-connection-termination.patch queue-4.4/iser-target-separate-flows-for-np-listeners-and-connections-cma-events.patch