Skip to content

Commit aef6a7e

Browse files
Joonyoung Shimairlied
authored andcommitted
drm: fix page_flip error handling
Free event and restore event_space only when page_flip->flags has DRM_MODE_PAGE_FLIP_EVENT if page_flip() is failed. Signed-off-by: Joonyoung Shim <[email protected]> Signed-off-by: Kyungmin Park <[email protected]> Reviewed-by: Michel Dänzer <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
1 parent d6b8395 commit aef6a7e

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

drivers/gpu/drm/drm_crtc.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3335,10 +3335,12 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
33353335

33363336
ret = crtc->funcs->page_flip(crtc, fb, e);
33373337
if (ret) {
3338-
spin_lock_irqsave(&dev->event_lock, flags);
3339-
file_priv->event_space += sizeof e->event;
3340-
spin_unlock_irqrestore(&dev->event_lock, flags);
3341-
kfree(e);
3338+
if (page_flip->flags & DRM_MODE_PAGE_FLIP_EVENT) {
3339+
spin_lock_irqsave(&dev->event_lock, flags);
3340+
file_priv->event_space += sizeof e->event;
3341+
spin_unlock_irqrestore(&dev->event_lock, flags);
3342+
kfree(e);
3343+
}
33423344
}
33433345

33443346
out:

0 commit comments

Comments
 (0)