ISCSI_HW_OFFLOAD transport drivers waits
on conn_logout_comp as ISCSI_TCP driver
so call complete if transport type
is ISCSI_HW_OFFLOAD.

Signed-off-by: Varun Prakash <va...@chelsio.com>
---
 drivers/target/iscsi/iscsi_target.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/target/iscsi/iscsi_target.c 
b/drivers/target/iscsi/iscsi_target.c
index 959644f..edce5af 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -4101,16 +4101,18 @@ int iscsit_close_connection(
        pr_debug("Closing iSCSI connection CID %hu on SID:"
                " %u\n", conn->cid, sess->sid);
        /*
-        * Always up conn_logout_comp for the traditional TCP case just in case
-        * the RX Thread in iscsi_target_rx_opcode() is sleeping and the logout
-        * response never got sent because the connection failed.
+        * Always up conn_logout_comp for the traditional TCP and HW_OFFLOAD
+        * case just in case the RX Thread in iscsi_target_rx_opcode() is
+        * sleeping and the logout response never got sent because the
+        * connection failed.
         *
         * However for iser-target, isert_wait4logout() is using 
conn_logout_comp
         * to signal logout response TX interrupt completion.  Go ahead and skip
         * this for iser since isert_rx_opcode() does not wait on logout 
failure,
         * and to avoid iscsi_conn pointer dereference in iser-target code.
         */
-       if (conn->conn_transport->transport_type == ISCSI_TCP)
+       if ((conn->conn_transport->transport_type == ISCSI_TCP) ||
+           (conn->conn_transport->transport_type == ISCSI_HW_OFFLOAD))
                complete(&conn->conn_logout_comp);
 
        if (!strcmp(current->comm, ISCSI_RX_THREAD_NAME)) {
-- 
2.0.2

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to