From: Frediano Ziglio Date: Wed, 3 Jun 2015 11:09:13 +0000 (+0100) Subject: drm/qxl: Handle all errors in qxl_surface_evict X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=c610c7137c02eb9812b4e7871abe5b0642ff58d2;p=GitHub%2Fexynos8895%2Fandroid_kernel_samsung_universal8895.git drm/qxl: Handle all errors in qxl_surface_evict Only EBUSY error was handled. This could cause code to believe reserve was successful while it failed. Signed-off-by: Frediano Ziglio Reviewed-by: Dave Airlie Signed-off-by: Dave Airlie --- diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c index f33251d67914..3d270a4f4fd7 100644 --- a/drivers/gpu/drm/qxl/qxl_cmd.c +++ b/drivers/gpu/drm/qxl/qxl_cmd.c @@ -618,8 +618,8 @@ static int qxl_reap_surf(struct qxl_device *qdev, struct qxl_bo *surf, bool stal int ret; ret = qxl_bo_reserve(surf, false); - if (ret == -EBUSY) - return -EBUSY; + if (ret) + return ret; if (stall) mutex_unlock(&qdev->surf_evict_mutex); @@ -628,9 +628,9 @@ static int qxl_reap_surf(struct qxl_device *qdev, struct qxl_bo *surf, bool stal if (stall) mutex_lock(&qdev->surf_evict_mutex); - if (ret == -EBUSY) { + if (ret) { qxl_bo_unreserve(surf); - return -EBUSY; + return ret; } qxl_surface_evict_locked(qdev, surf, true);