Skip to content

Commit 995fdfb

Browse files
charleskeepaxdaeinki
authored andcommitted
drm/exynos: Check for NULL dereference of crtc
The commit "drm/exynos: remove exynos_plane_dpms" (d9ea625) removed the use of the enabled flag, which means that the code may attempt to call win_enable on a NULL crtc. This results in the following oops on Arndale: [ 1.673479] Unable to handle kernel NULL pointer dereference at virtual address 00000368 [ 1.681500] pgd = c0004000 [ 1.684154] [00000368] *pgd=00000000 [ 1.687713] Internal error: Oops: 5 [#1] PREEMPT SMP ARM [ 1.693012] Modules linked in: [ 1.696045] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.19.0-07545-g57485fa raspberrypi#1907 [ 1.703524] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) (....) [ 2.014803] [<c02f9cfc>] (exynos_plane_destroy) from [<c02e61b4>] (drm_mode_config_cleanup+0x168/0x20c) [ 2.024178] [<c02e61b4>] (drm_mode_config_cleanup) from [<c02f66fc>] (exynos_drm_load+0xac/0x12c) This patch adds in a check to ensure exynos_crtc is not NULL before it is dereferenced. Signed-off-by: Charles Keepax <[email protected]> Signed-off-by: Inki Dae <[email protected]>
1 parent aed45ab commit 995fdfb

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/gpu/drm/exynos/exynos_drm_plane.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ static int exynos_disable_plane(struct drm_plane *plane)
175175
struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane);
176176
struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(plane->crtc);
177177

178-
if (exynos_crtc->ops->win_disable)
178+
if (exynos_crtc && exynos_crtc->ops->win_disable)
179179
exynos_crtc->ops->win_disable(exynos_crtc,
180180
exynos_plane->zpos);
181181

0 commit comments

Comments
 (0)