| From 89669e7a7f96be3ee8d9a22a071d7c0d3b4428fc Mon Sep 17 00:00:00 2001 |
| From: Thomas Hellstrom <thellstrom@vmware.com> |
| Date: Tue, 2 Dec 2014 03:36:57 -0800 |
| Subject: drm/vmwgfx: Fix fence event code |
| |
| From: Thomas Hellstrom <thellstrom@vmware.com> |
| |
| commit 89669e7a7f96be3ee8d9a22a071d7c0d3b4428fc upstream. |
| |
| The commit "vmwgfx: Rework fence event action" introduced a number of bugs |
| that are fixed with this commit: |
| |
| a) A forgotten return stateemnt. |
| b) An if statement with identical branches. |
| |
| Reported-by: Rob Clark <robdclark@gmail.com> |
| Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com> |
| Reviewed-by: Jakob Bornecrantz <jakob@vmware.com> |
| Reviewed-by: Sinclair Yeh <syeh@vmware.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/vmwgfx/vmwgfx_fence.c | 17 ++++++----------- |
| 1 file changed, 6 insertions(+), 11 deletions(-) |
| |
| --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c |
| +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c |
| @@ -1049,6 +1049,8 @@ int vmw_event_fence_action_create(struct |
| if (ret != 0) |
| goto out_no_queue; |
| |
| + return 0; |
| + |
| out_no_queue: |
| event->base.destroy(&event->base); |
| out_no_event: |
| @@ -1123,17 +1125,10 @@ int vmw_fence_event_ioctl(struct drm_dev |
| |
| BUG_ON(fence == NULL); |
| |
| - if (arg->flags & DRM_VMW_FE_FLAG_REQ_TIME) |
| - ret = vmw_event_fence_action_create(file_priv, fence, |
| - arg->flags, |
| - arg->user_data, |
| - true); |
| - else |
| - ret = vmw_event_fence_action_create(file_priv, fence, |
| - arg->flags, |
| - arg->user_data, |
| - true); |
| - |
| + ret = vmw_event_fence_action_create(file_priv, fence, |
| + arg->flags, |
| + arg->user_data, |
| + true); |
| if (unlikely(ret != 0)) { |
| if (ret != -ERESTARTSYS) |
| DRM_ERROR("Failed to attach event to fence.\n"); |