Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55a4623d authored by E V Ravi's avatar E V Ravi
Browse files

msm: ais: reqmgr: Hold device lock while retrieving session info



There is a possibility for destroy session and link to occur
concurrently, if this does we end up using a freed pointer while
linking. Avoid this by increasing the scope of the device lock.

Change-Id: I6f1a8967564b64aec282081b21ebe0daf23d2124
Signed-off-by: default avatarE V Ravi <evenka@codeaurora.org>
parent 8f24df85
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -2479,16 +2479,17 @@ int cam_req_mgr_link(struct cam_req_mgr_link_info *link_info)
		return -EINVAL;
	}

	mutex_lock(&g_crm_core_dev->crm_lock);

	/* session hdl's priv data is cam session struct */
	cam_session = (struct cam_req_mgr_core_session *)
		cam_get_device_priv(link_info->session_hdl);
	if (!cam_session) {
		CAM_DBG(CAM_CRM, "NULL pointer");
		mutex_unlock(&g_crm_core_dev->crm_lock);
		return -EINVAL;
	}

	mutex_lock(&g_crm_core_dev->crm_lock);

	/* Allocate link struct and map it with session's request queue */
	link = __cam_req_mgr_reserve_link(cam_session);
	if (!link) {