diff options
author | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2018-01-10 04:32:18 -0500 |
---|---|---|
committer | Maarten Lankhorst <maarten.lankhorst@linux.intel.com> | 2018-01-10 04:33:40 -0500 |
commit | 60ccc38f53ad50128bf33616f4e1745947eb726c (patch) | |
tree | 4f87dd664d0e7a613d13f5fb2c31687d2f643f35 /drivers/gpu/drm/drm_atomic_helper.c | |
parent | c308279f87988a1582a52f25fa7903974f0f4a12 (diff) |
Revert "drm/atomic: Fix memleak on ERESTARTSYS during non-blocking commits"
This reverts commit a10195bbe7f4e6ba540083ba13126ef745116cae.
This commit needs some more thought, and is currently crashing kms_flip
tests. Until we figure out what's going wrong it's better to revert, and
also next time apply it to drm-misc-fixes.
Testcase: kms_flip
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104566
References: https://patchwork.freedesktop.org/series/36185/
References: https://patchwork.freedesktop.org/series/36250/
Reported-by: Marta Löfstedt <marta.lofstedt@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/drm_atomic_helper.c')
-rw-r--r-- | drivers/gpu/drm/drm_atomic_helper.c | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 4253f57227e3..ab4032167094 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c | |||
@@ -3421,15 +3421,6 @@ EXPORT_SYMBOL(drm_atomic_helper_crtc_duplicate_state); | |||
3421 | void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc_state *state) | 3421 | void __drm_atomic_helper_crtc_destroy_state(struct drm_crtc_state *state) |
3422 | { | 3422 | { |
3423 | if (state->commit) { | 3423 | if (state->commit) { |
3424 | /* | ||
3425 | * In the event that a non-blocking commit returns | ||
3426 | * -ERESTARTSYS before the commit_tail work is queued, we will | ||
3427 | * have an extra reference to the commit object. Release it, if | ||
3428 | * the event has not been consumed by the worker. | ||
3429 | */ | ||
3430 | if (state->event) | ||
3431 | drm_crtc_commit_put(state->commit); | ||
3432 | |||
3433 | kfree(state->commit->event); | 3424 | kfree(state->commit->event); |
3434 | state->commit->event = NULL; | 3425 | state->commit->event = NULL; |
3435 | drm_crtc_commit_put(state->commit); | 3426 | drm_crtc_commit_put(state->commit); |