From: Sagi Grimberg Date: Tue, 2 Dec 2014 14:57:26 +0000 (+0200) Subject: iser-target: Fix connected_handler + teardown flow race X-Git-Tag: omap-for-v3.20/drop-legacy-3517~16^2~28 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19e2090fb246ca21b3e569ead51a6a7a1748eadd;p=pandora-kernel.git iser-target: Fix connected_handler + teardown flow race Take isert_conn pointer from cm_id->qp->qp_context. This will allow us to know that the cm_id context is always the network portal. This will make the cm_id event check (connection or network portal) more reliable. In order to avoid a NULL dereference in cma_id->qp->qp_context we destroy the qp after we destroy the cm_id (and make the dereference safe). session stablishment/teardown sequences can happen in parallel, we should take into account that connected_handler might race with connection teardown flow. Also, protect isert_conn->conn_device->active_qps decrement within the error patch during QP creation failure and the normal teardown path in isert_connect_release(). Squashed: iser-target: Decrement completion context active_qps in error flow Signed-off-by: Sagi Grimberg Cc: # v3.10+ Signed-off-by: Nicholas Bellinger --- Reading git-diff-tree failed