Skip to content

Commit e9d9b25

Browse files
Kaustabh Chakrabortygregkh
authored andcommitted
drm/exynos: exynos7_drm_decon: add vblank check in IRQ handling
commit b846350 upstream. If there's support for another console device (such as a TTY serial), the kernel occasionally panics during boot. The panic message and a relevant snippet of the call stack is as follows: Unable to handle kernel NULL pointer dereference at virtual address 000000000000000 Call trace: drm_crtc_handle_vblank+0x10/0x30 (P) decon_irq_handler+0x88/0xb4 [...] Otherwise, the panics don't happen. This indicates that it's some sort of race condition. Add a check to validate if the drm device can handle vblanks before calling drm_crtc_handle_vblank() to avoid this. Cc: stable@vger.kernel.org Fixes: 96976c3 ("drm/exynos: Add DECON driver") Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 6dee745 commit e9d9b25

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/gpu/drm/exynos/exynos7_drm_decon.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,10 @@ static irqreturn_t decon_irq_handler(int irq, void *dev_id)
601601
if (!ctx->drm_dev)
602602
goto out;
603603

604+
/* check if crtc and vblank have been initialized properly */
605+
if (!drm_dev_has_vblank(ctx->drm_dev))
606+
goto out;
607+
604608
if (!ctx->i80_if) {
605609
drm_crtc_handle_vblank(&ctx->crtc->base);
606610

0 commit comments

Comments
 (0)