Thomas Zimmermann
27a7e8b6c5
drm/sysfb: Do not deref unexisting CRTC state in atomic_disable
Do not access CRTC state in drm_sysfb_plane_helper_atomic_disable().
Use format from sysfb device for clearing scanout buffer. This is
the behavior from before commit 061963cd9e ("drm/sysfb: Blit to
CRTC destination format").
When being disabled, the plane has no associated CRTC. Trying to deref
the format pointer results in a segmentation fault. An example stack
track is shown below.
[ 58.948915] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000023: 0000 [#1] SMP KASAN PTI
[ 58.959971] KASAN: null-ptr-deref in range [0x0000000000000118-0x000000000000011f]
[...]
[ 58.979308] RIP: 0010:drm_sysfb_plane_helper_atomic_disable+0x1af/0x520
[...]
[ 59.084227] Call Trace:
[ 59.086682] <TASK>
[ 59.088793] ? __pfx_drm_sysfb_plane_helper_atomic_disable+0x10/0x10
[ 59.095155] ? crtc_disable+0xf2/0x5a0
[ 59.098920] drm_atomic_helper_commit_planes+0x848/0x1030
[ 59.104336] drm_atomic_helper_commit_tail+0x41/0xb0
[ 59.109316] commit_tail+0x204/0x330
[ 59.112903] drm_atomic_helper_commit+0x242/0x2e0
[ 59.117618] ? __pfx_drm_atomic_helper_commit+0x10/0x10
[ 59.122851] drm_atomic_commit+0x1e1/0x290
[ 59.126957] ? drm_atomic_add_affected_connectors+0x266/0x330
[ 59.132714] ? __pfx_drm_atomic_commit+0x10/0x10
[ 59.137343] ? __pfx___drm_printfn_info+0x10/0x10
[ 59.142058] ? drm_atomic_set_crtc_for_connector+0x436/0x630
[ 59.147729] atomic_remove_fb+0x631/0x920
[ 59.151751] ? save_trace+0xcf/0x180
[ 59.155343] ? __pfx_atomic_remove_fb+0x10/0x10
[ 59.159890] ? __pfx___drm_dev_dbg+0x10/0x10
[ 59.164173] drm_framebuffer_remove+0x19a/0x710
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Fixes: 061963cd9e ("drm/sysfb: Blit to CRTC destination format")
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14874
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Javier Martinez Canillas <javierm@redhat.com>
Cc: dri-devel@lists.freedesktop.org
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://lore.kernel.org/r/20250826145044.954396-1-tzimmermann@suse.de
2025-08-27 14:09:58 +02:00
..
2025-08-26 11:18:22 -07:00
2025-08-14 13:09:27 +02:00
2025-07-29 09:52:01 -07:00
2025-08-14 18:58:12 +09:00
2025-08-09 08:40:28 +03:00
2025-08-07 10:07:06 +02:00
2025-08-11 07:57:48 -06:00
2025-07-23 10:34:30 -04:00
2025-07-29 11:13:27 -07:00
2025-07-22 19:10:17 -06:00
2025-07-16 14:17:31 +02:00
2025-08-07 07:38:25 +03:00
2025-07-31 13:36:27 -07:00
2025-07-29 14:02:53 -07:00
2025-07-29 09:52:01 -07:00
2025-08-11 21:49:47 +02:00
2025-08-11 21:46:14 +02:00
2025-07-31 09:45:28 -07:00
2025-08-03 16:23:09 -07:00
2025-08-01 12:35:12 -07:00
2025-07-30 19:26:49 -07:00
2025-08-04 17:22:55 -07:00
2025-07-29 16:30:38 -07:00
2025-08-03 21:20:15 +09:00
2025-08-09 18:10:01 +03:00
2025-07-29 12:15:39 -07:00
2025-08-12 15:40:28 +02:00
2025-08-27 14:09:58 +02:00
2025-08-25 09:18:39 -07:00
2025-07-30 17:14:01 -07:00
2025-08-07 10:07:06 +02:00
2025-08-07 10:07:06 +02:00
2025-07-31 02:25:17 +02:00
2025-08-11 21:43:26 +02:00
2025-08-07 10:07:06 +02:00
2025-08-07 07:36:23 +03:00
2025-08-07 10:07:06 +02:00
2025-07-29 09:52:01 -07:00
2025-08-01 13:59:07 -07:00
2025-08-06 17:00:40 +02:00
2025-08-07 10:07:06 +02:00
2025-08-07 23:49:56 -05:00
2025-07-16 14:17:07 +02:00
2025-08-09 08:47:28 +03:00
2025-08-07 10:07:06 +02:00
2025-07-22 22:47:00 +02:00
2025-07-16 12:01:09 +02:00
2025-08-07 10:07:06 +02:00
2025-08-07 10:07:06 +02:00
2025-07-29 12:05:38 -07:00
2025-07-31 13:43:02 -07:00
2025-07-28 17:16:12 -07:00
2025-08-14 07:14:30 -07:00
2025-07-31 14:57:54 -07:00
2025-08-07 06:27:58 -06:00
2025-07-29 12:15:39 -07:00
2025-07-30 17:14:01 -07:00
2025-07-23 11:52:48 +02:00
2025-08-09 08:39:05 +03:00
2025-08-01 12:31:50 -07:00
2025-08-07 10:07:06 +02:00
2025-08-07 10:07:06 +02:00
2025-07-23 12:12:16 +02:00
2025-07-31 21:39:01 -07:00
2025-07-28 23:21:28 -07:00
2025-08-12 14:17:35 -07:00
2025-08-07 10:07:06 +02:00
2025-08-09 08:41:53 +03:00
2025-08-01 15:02:25 -07:00
2025-07-31 13:36:27 -07:00
2025-08-01 15:02:25 -07:00
2025-08-03 20:17:34 -07:00
2025-08-08 06:56:55 +03:00
2025-08-12 21:36:18 -04:00
2025-08-11 12:24:43 +02:00
2025-08-01 11:09:27 -07:00
2025-08-09 08:43:24 +03:00
2025-08-07 10:07:06 +02:00
2025-08-07 10:07:06 +02:00
2025-08-06 15:44:25 +03:00
2025-07-29 12:15:39 -07:00
2025-07-21 16:33:43 +02:00
2025-08-07 10:07:06 +02:00
2025-08-12 21:36:18 -04:00
2025-08-07 10:07:06 +02:00
2025-08-01 09:11:08 -04:00
2025-08-07 07:32:50 +03:00
2025-08-05 05:57:40 -04:00
2025-08-26 09:54:16 +02:00
2025-08-15 17:05:39 +02:00
2025-08-01 14:17:48 -07:00
2025-07-28 12:07:08 +02:00
2025-07-30 19:26:49 -07:00