Reboot crash at msm_atomic_commit_tail

Fabio Estevam festevam at gmail.com
Mon Jan 18 22:00:10 UTC 2021


On Mon, Jan 18, 2021 at 6:44 PM Fabio Estevam <festevam at gmail.com> wrote:
>
> Adding some more folks in case anyone has any suggestions to fix this
> reboot hang.

Not sure if this is a valid fix, but the change below makes reboot
works correctly.

kmscube still works.

--- a/drivers/gpu/drm/msm/msm_atomic.c
+++ b/drivers/gpu/drm/msm/msm_atomic.c
@@ -207,8 +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 &&
-                       can_do_async(state, &async_crtc);
+       bool async;
+
+       if (!kms)
+               return;
+
+       async = kms->funcs->vsync_time && can_do_async(state, &async_crtc);

        trace_msm_atomic_commit_tail_start(async, crtc_mask);

Any comments?

Thanks


More information about the dri-devel mailing list