diff mbox series

drm/i915/slpc: Fix inconsistent locked return

Message ID 20220830150229.165214-1-rodrigo.vivi@intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915/slpc: Fix inconsistent locked return | expand

Commit Message

Rodrigo Vivi Aug. 30, 2022, 3:02 p.m. UTC
Fix for intel_guc_slpc_set_min_freq() warn: inconsistent returns '&slpc->lock'.

Fixes: 95ccf312a1e4 ("drm/i915/guc/slpc: Allow SLPC to use efficient frequency")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Dixit, Ashutosh Aug. 30, 2022, 3:30 p.m. UTC | #1
On Tue, 30 Aug 2022 08:02:29 -0700, Rodrigo Vivi wrote:
>
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> index 9d49ccef03bb..f8a2bbcdf14f 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> @@ -477,7 +477,7 @@ int intel_guc_slpc_set_min_freq(struct intel_guc_slpc *slpc, u32 val)
>		if (unlikely(ret)) {
>			i915_probe_error(i915, "Failed to toggle efficient freq (%pe)\n",
>					 ERR_PTR(ret));
> -			return ret;
> +			goto unlock;

I think leaking runtime_pm wakeref now...

>		}
>
>		ret = slpc_set_param(slpc,
> @@ -492,6 +492,7 @@ int intel_guc_slpc_set_min_freq(struct intel_guc_slpc *slpc, u32 val)
>	if (!ret)
>		slpc->min_freq_softlimit = val;
>
> +unlock:
>	mutex_unlock(&slpc->lock);
>
>	return ret;
> --
> 2.37.2
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
index 9d49ccef03bb..f8a2bbcdf14f 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
@@ -477,7 +477,7 @@  int intel_guc_slpc_set_min_freq(struct intel_guc_slpc *slpc, u32 val)
 		if (unlikely(ret)) {
 			i915_probe_error(i915, "Failed to toggle efficient freq (%pe)\n",
 					 ERR_PTR(ret));
-			return ret;
+			goto unlock;
 		}
 
 		ret = slpc_set_param(slpc,
@@ -492,6 +492,7 @@  int intel_guc_slpc_set_min_freq(struct intel_guc_slpc *slpc, u32 val)
 	if (!ret)
 		slpc->min_freq_softlimit = val;
 
+unlock:
 	mutex_unlock(&slpc->lock);
 
 	return ret;