]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Jul 2025 14:50:12 +0000 (16:50 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Jul 2025 14:55:27 +0000 (16:55 +0200)
added patches:
drm-exynos-exynos7_drm_decon-add-vblank-check-in-irq-handling.patch

queue-5.4/drm-exynos-exynos7_drm_decon-add-vblank-check-in-irq-handling.patch [new file with mode: 0644]
queue-5.4/series

diff --git a/queue-5.4/drm-exynos-exynos7_drm_decon-add-vblank-check-in-irq-handling.patch b/queue-5.4/drm-exynos-exynos7_drm_decon-add-vblank-check-in-irq-handling.patch
new file mode 100644 (file)
index 0000000..3bc248e
--- /dev/null
@@ -0,0 +1,47 @@
+From b846350aa272de99bf6fecfa6b08e64ebfb13173 Mon Sep 17 00:00:00 2001
+From: Kaustabh Chakraborty <kauschluss@disroot.org>
+Date: Fri, 27 Jun 2025 00:50:30 +0530
+Subject: drm/exynos: exynos7_drm_decon: add vblank check in IRQ handling
+
+From: Kaustabh Chakraborty <kauschluss@disroot.org>
+
+commit b846350aa272de99bf6fecfa6b08e64ebfb13173 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: 96976c3d9aff ("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>
+---
+ drivers/gpu/drm/exynos/exynos7_drm_decon.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
++++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+@@ -595,6 +595,10 @@ static irqreturn_t decon_irq_handler(int
+       if (!ctx->drm_dev)
+               goto out;
++      /* check if crtc and vblank have been initialized properly */
++      if (!drm_dev_has_vblank(ctx->drm_dev))
++              goto out;
++
+       if (!ctx->i80_if) {
+               drm_crtc_handle_vblank(&ctx->crtc->base);
index 3415153c784a69ca30e7d4883148d316895fd565..09c8dafa3629967b6436fe579cba101760bb2869 100644 (file)
@@ -109,3 +109,4 @@ media-uvcvideo-return-the-number-of-processed-controls.patch
 media-uvcvideo-send-control-events-for-partial-succeeds.patch
 media-uvcvideo-rollback-non-processed-entities-on-error.patch
 staging-rtl8723bs-avoid-memset-in-aes_cipher-and-aes_decipher.patch
+drm-exynos-exynos7_drm_decon-add-vblank-check-in-irq-handling.patch