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

Commit 384e1688 authored by Shilpa Mamidi's avatar Shilpa Mamidi Committed by Gerrit - the friendly Code Review server
Browse files

msm: cpp: Adding mutex unlock before returning



Adding mutex unlock before returning in error cases
and also ensured that return value is not over written
in error cases.

Change-Id: I5aceffd2dbf2b456ca421892b691f86c6b1032c3
Signed-off-by: default avatarShilpa Mamidi <shilpam@codeaurora.org>
parent a660e4d0
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
/* Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2016, 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
@@ -1203,8 +1203,7 @@ fs_mmagic_failed:
	else
		msm_isp_deinit_bandwidth_mgr(ISP_CPP);
bus_scale_register_failed:
	rc = cam_config_ahb_clk(CAM_AHB_CLIENT_CPP, CAMERA_AHB_SUSPEND_VOTE);
	if (rc < 0)
	if (cam_config_ahb_clk(CAM_AHB_CLIENT_CPP, CAMERA_AHB_SUSPEND_VOTE) < 0)
		pr_err("%s: failed to remove vote for AHB\n", __func__);
ahb_vote_fail:
	return rc;
@@ -2974,6 +2973,7 @@ long msm_cpp_subdev_ioctl(struct v4l2_subdev *sd,
				pr_err("%s: load firmware failure %d\n",
					__func__, rc);
				enable_irq(cpp_dev->irq->start);
				mutex_unlock(&cpp_dev->mutex);
				return rc;
			}
			rc = msm_cpp_fw_version(cpp_dev);
@@ -2981,6 +2981,7 @@ long msm_cpp_subdev_ioctl(struct v4l2_subdev *sd,
				pr_err("%s: get firmware failure %d\n",
					__func__, rc);
				enable_irq(cpp_dev->irq->start);
				mutex_unlock(&cpp_dev->mutex);
				return rc;
			}
			enable_irq(cpp_dev->irq->start);
@@ -3230,6 +3231,7 @@ STREAM_BUFF_END:
			msm_cpp_core_clk_idx = get_clock_index("cpp_core_clk");
			if (msm_cpp_core_clk_idx < 0) {
				pr_err(" Fail to get clock index\n");
				mutex_unlock(&cpp_dev->mutex);
				return -EINVAL;
			}
			rc = msm_cpp_update_bandwidth_setting(cpp_dev,
@@ -3275,6 +3277,7 @@ STREAM_BUFF_END:

		if (ioctl_ptr->len != sizeof(struct msm_pproc_queue_buf_info)) {
			pr_err("%s: Not valid ioctl_ptr->len\n", __func__);
			mutex_unlock(&cpp_dev->mutex);
			return -EINVAL;
		}
		rc = msm_cpp_copy_from_ioctl_ptr(&queue_buf_info, ioctl_ptr);