On 3/27/2026 5:05 PM, Konrad Dybcio wrote:
> On 3/27/26 1:13 AM, Akhil P Oommen wrote:
>> Capture coredump on GPU or GMU errors during initialization to help in
>> debugging the issues. To be consistent with the locks while calling
>> msm_gpu_crashstate_capture(), call pm_runtime_get(gpu) always with
>> msm_gpu->lock.
>>
>> Signed-off-by: Akhil P Oommen <[email protected]>
>> ---
> 
> [...]
> 
> 
>> --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>> +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
>> @@ -391,10 +391,13 @@ int adreno_get_param(struct msm_gpu *gpu, struct 
>> msm_context *ctx,
>>              return 0;
>>      case MSM_PARAM_TIMESTAMP:
>>              if (adreno_gpu->funcs->get_timestamp) {
>> +                    mutex_lock(&gpu->lock);
>>                      pm_runtime_get_sync(&gpu->pdev->dev);
>> +
>>                      *value = adreno_gpu->funcs->get_timestamp(gpu);
>> -                    pm_runtime_put_autosuspend(&gpu->pdev->dev);
>>  
>> +                    pm_runtime_put_autosuspend(&gpu->pdev->dev);
>> +                    mutex_unlock(&gpu->lock);
> 
> This is something to take care of in a separate patch, but get_sync may
> fail and then the read could crash the device (GMU may be off too)
> 
> put_autosuspend could theroetically fail too, but perhaps -edontcarethatmuch

Right. That is something we should fix everywhere separately.

-Akhil.

> 
> Konrad

Reply via email to