mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-22 09:12:24 +03:00
gpu: nvgpu: return error from mutex_acquire() if pmu not initialized
In pmu_mutex_acquire(), we return zero (success) if pmu->initialized is not set Since mutex_acquire() was successful, we then call pmu_mutex_release() If now pmu->initialized is set in some other thread then we proceed to validate the mutex owner and end up causing below warning : pmu_mutex_release: requester 0x00000000 NOT match owner 0x00000008 Hence to fix this return error from mutex_acquire() and mutex_release() if pmu->initialized is not yet set and in that case we proceed to call elpg enable/disable Bug 1533644 Change-Id: Ifbb9e6a8e13f6478a13e3f9d98ced11792cc881f Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/439333 GVS: Gerrit_Virtual_Submit Reviewed-by: Naveen Kumar S <nkumars@nvidia.com> Tested-by: Naveen Kumar S <nkumars@nvidia.com> Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
This commit is contained in:
committed by
Dan Willemsen
parent
d98099c9b6
commit
a84dc62b5e
@@ -1227,7 +1227,7 @@ int pmu_mutex_acquire(struct pmu_gk20a *pmu, u32 id, u32 *token)
|
|||||||
u32 data, owner, max_retry;
|
u32 data, owner, max_retry;
|
||||||
|
|
||||||
if (!pmu->initialized)
|
if (!pmu->initialized)
|
||||||
return 0;
|
return -EINVAL;
|
||||||
|
|
||||||
BUG_ON(!token);
|
BUG_ON(!token);
|
||||||
BUG_ON(!PMU_MUTEX_ID_IS_VALID(id));
|
BUG_ON(!PMU_MUTEX_ID_IS_VALID(id));
|
||||||
@@ -1296,7 +1296,7 @@ int pmu_mutex_release(struct pmu_gk20a *pmu, u32 id, u32 *token)
|
|||||||
u32 owner, data;
|
u32 owner, data;
|
||||||
|
|
||||||
if (!pmu->initialized)
|
if (!pmu->initialized)
|
||||||
return 0;
|
return -EINVAL;
|
||||||
|
|
||||||
BUG_ON(!token);
|
BUG_ON(!token);
|
||||||
BUG_ON(!PMU_MUTEX_ID_IS_VALID(id));
|
BUG_ON(!PMU_MUTEX_ID_IS_VALID(id));
|
||||||
|
|||||||
Reference in New Issue
Block a user