FAILED: patch "[PATCH] iser-target: Add new state ISER_CONN_BOUND to isert_conn" failed to apply to 3.14-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 3.14-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
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: [PATCH] iser-target: Add new state ISER_CONN_BOUND to isert_conn
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.
Signed-off-by Jenny Derzhavetz <[email protected]>
Signed-off-by Sagi Grimberg <[email protected]>
Cc [email protected] # v3.10+
Signed-off-by Nicholas Bellinger <[email protected]>
drivers/infiniband/ulp/isert/ib_isert.c +5 -2
@@ -825,7 +825,7 @@ isert_put_conn(struct isert_conn *isert_conn)* @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. *
@@ -841,6 +841,7 @@ isert_conn_terminate(struct isert_conn *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);
@@ -2075,7 +2076,8 @@ isert_cq_comp_err(struct isert_conn *isert_conn, struct ib_wc *wc)isert_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 ); } }
@@ -3215,6 +3217,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
@@ -84,6 +84,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 ,