Commit 7a2962c7 authored by Eddie Wai's avatar Eddie Wai Committed by James Bottomley
Browse files

[SCSI] bnx2i: Added mutex lock protection to conn_get_param



Added net_dev mutex lock protection before accessing the csk
parameters.

Signed-off-by: default avatarEddie Wai <eddie.wai@broadcom.com>
Reviewed-by: default avatarBenjamin Li <benli@broadcom.com>
Reviewed-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@suse.de>
parent 252e4480
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -1461,21 +1461,28 @@ static int bnx2i_conn_get_param(struct iscsi_cls_conn *cls_conn,
	struct bnx2i_conn *bnx2i_conn = conn->dd_data;
	int len = 0;

	if (!(bnx2i_conn && bnx2i_conn->ep && bnx2i_conn->ep->hba))
		goto out;

	switch (param) {
	case ISCSI_PARAM_CONN_PORT:
		if (bnx2i_conn->ep)
		mutex_lock(&bnx2i_conn->ep->hba->net_dev_lock);
		if (bnx2i_conn->ep->cm_sk)
			len = sprintf(buf, "%hu\n",
				      bnx2i_conn->ep->cm_sk->dst_port);
		mutex_unlock(&bnx2i_conn->ep->hba->net_dev_lock);
		break;
	case ISCSI_PARAM_CONN_ADDRESS:
		if (bnx2i_conn->ep)
		mutex_lock(&bnx2i_conn->ep->hba->net_dev_lock);
		if (bnx2i_conn->ep->cm_sk)
			len = sprintf(buf, "%pI4\n",
				      &bnx2i_conn->ep->cm_sk->dst_ip);
		mutex_unlock(&bnx2i_conn->ep->hba->net_dev_lock);
		break;
	default:
		return iscsi_conn_get_param(cls_conn, param, buf);
	}

out:
	return len;
}