瀏覽代碼

msm: eva: Added the check for valid session pointer

Checking if session pointer is 0xdeadbeef or not.

Change-Id: I49a7675a9123b39d107f10a3666d9f9e31982259
Signed-off-by: Aniruddh Sharma <[email protected]>
Aniruddh Sharma 1 年之前
父節點
當前提交
4768eac7b0
共有 4 個文件被更改,包括 7 次插入6 次删除
  1. 2 2
      msm/eva/cvp_hfi.c
  2. 2 1
      msm/eva/hfi_packetization.c
  3. 1 1
      msm/eva/msm_cvp.c
  4. 2 2
      msm/eva/msm_cvp_common.c

+ 2 - 2
msm/eva/cvp_hfi.c

@@ -2640,7 +2640,7 @@ static int iris_hfi_session_clean(void *session)
 	struct cvp_hal_session *sess_close;
 	struct iris_hfi_device *device;
 
-	if (!session) {
+	if (!session || session == (void *)0xdeadbeef) {
 		dprintk(CVP_ERR, "Invalid Params %s\n", __func__);
 		return -EINVAL;
 	}
@@ -2945,7 +2945,7 @@ static int iris_hfi_session_release_buffers(void *sess)
 	struct cvp_hal_session *session = sess;
 	struct iris_hfi_device *device;
 
-	if (!session || !session->device) {
+	if (!session || session == (void *)0xdeadbeef || !session->device) {
 		dprintk(CVP_ERR, "Invalid Params\n");
 		return -EINVAL;
 	}

+ 2 - 1
msm/eva/hfi_packetization.c

@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /*
  * Copyright (c) 2018-2021, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #include "hfi_packetization.h"
@@ -325,7 +326,7 @@ int cvp_create_pkt_cmd_session_release_buffers(
 {
 	struct cvp_session_release_buffers_packet *pkt;
 
-	if (!cmd || !session)
+	if (!cmd || !session || session == (void *)0xdeadbeef)
 		return -EINVAL;
 
 	pkt = (struct cvp_session_release_buffers_packet *)cmd;

+ 1 - 1
msm/eva/msm_cvp.c

@@ -1626,7 +1626,7 @@ int msm_cvp_session_deinit(struct msm_cvp_inst *inst)
 		inst, hash32_ptr(inst->session));
 
 	session = (struct cvp_hal_session *)inst->session;
-	if (!session)
+	if (!session || session == (void *)0xdeadbeef)
 		return rc;
 
 	rc = msm_cvp_comm_try_state(inst, MSM_CVP_CLOSE_DONE);

+ 2 - 2
msm/eva/msm_cvp_common.c

@@ -653,7 +653,7 @@ void msm_cvp_comm_session_clean(struct msm_cvp_inst *inst)
 		dprintk(CVP_ERR, "%s invalid params\n", __func__);
 		return;
 	}
-	if (!inst->session) {
+	if (!inst->session || inst->session == (void *)0xdeadbeef) {
 		dprintk(CVP_SESS, "%s: inst %pK session already cleaned\n",
 			__func__, inst);
 		return;
@@ -1299,7 +1299,7 @@ int msm_cvp_comm_kill_session(struct msm_cvp_inst *inst)
 	if (!inst || !inst->core || !inst->core->dev_ops) {
 		dprintk(CVP_ERR, "%s: invalid input parameters\n", __func__);
 		return -EINVAL;
-	} else if (!inst->session) {
+	} else if (!inst->session || inst->session == (void *)0xdeadbeef) {
 		dprintk(CVP_ERR, "%s: no session to kill for inst %pK\n",
 			__func__, inst);
 		return 0;