[PATCH] gpu/drm/msm: fix shutdown hook in case GPU components failed to bind

Dmitry Baryshkov dmitry.baryshkov at linaro.org
Thu Mar 18 20:05:36 UTC 2021


On 17/03/2021 19:25, Rob Clark wrote:
> On Mon, Mar 1, 2021 at 1:41 PM Dmitry Baryshkov
> <dmitry.baryshkov at linaro.org> wrote:
>>
>> if GPU components have failed to bind, shutdown callback would fail with
>> the following backtrace. Add safeguard check to stop that oops from
>> happening and allow the board to reboot.

[skipped]

>> diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c
>> index 6a326761dc4a..2fd0cf6421ad 100644
>> --- a/drivers/gpu/drm/msm/msm_atomic.c
>> +++ b/drivers/gpu/drm/msm/msm_atomic.c
>> @@ -207,7 +207,12 @@ void msm_atomic_commit_tail(struct drm_atomic_state *state)
>>          struct msm_kms *kms = priv->kms;
>>          struct drm_crtc *async_crtc = NULL;
>>          unsigned crtc_mask = get_crtc_mask(state);
>> -       bool async = kms->funcs->vsync_time &&
>> +       bool async;
>> +
>> +       if (!kms)
>> +               return;
> 
> I think we could instead just check for null priv->kms in
> msm_pdev_shutdown() and not call drm_atomic_helper_shutdown()?


Good idea. Sending v2.

> 
> BR,
> -R
> 
>> +
>> +       async = kms->funcs->vsync_time &&
>>                          can_do_async(state, &async_crtc);
>>
>>          trace_msm_atomic_commit_tail_start(async, crtc_mask);
>> --
>> 2.30.1
>>


-- 
With best wishes
Dmitry


More information about the dri-devel mailing list