Fixes for v4.21:

- Fix null pointer dereference on null state pointer.
 - Fix leaking damage clip when destroying plane state.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuXvWqAysSYEJGuVH/lWMcqZwE8MFAlws8n8ACgkQ/lWMcqZw
 E8NREA/+PTs4FCORxvriaiWfP2nIxLqIyehR2qVJbMl0PvAonlqFcJgH+SHNxVd5
 sKJYXWaCtA0TV0qEvp7ewcNfVJ9TbyfQG9/q/rAeKRqXYTAxQhfOaTEmMThZ9JCn
 OoptVvuPR7HAhLusIotxihxaM8Hkkr6Lcy1eZubqCcoA/CBbJ1Mc1RlTz3iCZL/2
 C5zz3/jL8K8AY8gk1zkIn4PpgHwslosKQpvSKKyG2WuMupKr+78k2dDyCvS24a2r
 NOk81Y06ou/8tZn6hCv7c5iYcNRbmNT1LOKgN+b8JL4TNpTrU4CDc1mmOh8uHf0P
 /0xBLpY2XMsUuxsT6nMigCimejwP4cFz1jYTWpzT1lNVh3hOrBS+R0TS9HLcl56I
 EYV4LCDXARGd7f+LYop3ffhV5aLUdCiuuhBE0yKZY8endZa0IgOkyzXd4tsvpKHe
 gapHiDIMWTeSqZrRAcuH4HEawRqGRdOt8kw5+ABOHh7DM5S5sDqUNTBAJSs0UcDV
 KcAjdiqeaKPztJi/37EaNHeHryil7HD9Xh+oGuYmsupARwqCWsRUZf6YFhk42M+3
 fpNO3CH+St2QZEnbHbGjvdzZhMUiPXnyoGv34ACBXHZhFdjm85or9sPghAP8IL1x
 SDrhlm3K2/9+mSzGKpqotf6y68cKNSnYQfHYqVj4+9aYRq4nxSc=
 =L3hx
 -----END PGP SIGNATURE-----

Merge tag 'drm-misc-next-fixes-2019-01-02' of git://anongit.freedesktop.org/drm/drm-misc into drm-next

Fixes for v4.21:
- Fix null pointer dereference on null state pointer.
- Fix leaking damage clip when destroying plane state.

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/46c4dbcd-dc23-7b46-fda9-16fe33e6ceef@linux.intel.com
This commit is contained in:
Dave Airlie 2019-01-04 14:09:12 +10:00
commit 9ddf32a8df
2 changed files with 5 additions and 1 deletions

View File

@ -241,6 +241,7 @@ void __drm_atomic_helper_plane_duplicate_state(struct drm_plane *plane,
state->fence = NULL; state->fence = NULL;
state->commit = NULL; state->commit = NULL;
state->fb_damage_clips = NULL;
} }
EXPORT_SYMBOL(__drm_atomic_helper_plane_duplicate_state); EXPORT_SYMBOL(__drm_atomic_helper_plane_duplicate_state);
@ -285,6 +286,8 @@ void __drm_atomic_helper_plane_destroy_state(struct drm_plane_state *state)
if (state->commit) if (state->commit)
drm_crtc_commit_put(state->commit); drm_crtc_commit_put(state->commit);
drm_property_blob_put(state->fb_damage_clips);
} }
EXPORT_SYMBOL(__drm_atomic_helper_plane_destroy_state); EXPORT_SYMBOL(__drm_atomic_helper_plane_destroy_state);

View File

@ -178,7 +178,7 @@ int drm_atomic_helper_dirtyfb(struct drm_framebuffer *fb,
state = drm_atomic_state_alloc(fb->dev); state = drm_atomic_state_alloc(fb->dev);
if (!state) { if (!state) {
ret = -ENOMEM; ret = -ENOMEM;
goto out; goto out_drop_locks;
} }
state->acquire_ctx = &ctx; state->acquire_ctx = &ctx;
@ -238,6 +238,7 @@ out:
kfree(rects); kfree(rects);
drm_atomic_state_put(state); drm_atomic_state_put(state);
out_drop_locks:
drm_modeset_drop_locks(&ctx); drm_modeset_drop_locks(&ctx);
drm_modeset_acquire_fini(&ctx); drm_modeset_acquire_fini(&ctx);