From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 2/3] drm/qxl: fix gaping memory hole Date: Wed, 03 Sep 2014 17:12:22 +0200 Message-ID: <54072FD6.10907@canonical.com> References: <54072F9B.7090304@canonical.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by gabe.freedesktop.org (Postfix) with ESMTP id 0281E6E3D8 for ; Wed, 3 Sep 2014 08:12:23 -0700 (PDT) In-Reply-To: <54072F9B.7090304@canonical.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie Cc: "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org This is how you implement a sieve in a driver. ;-) Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/qxl/qxl_release.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/qxl/qxl_release.c b/drivers/gpu/drm/qxl/qxl_release.c index 828d47e90dce..29ab4ec44c40 100644 --- a/drivers/gpu/drm/qxl/qxl_release.c +++ b/drivers/gpu/drm/qxl/qxl_release.c @@ -162,12 +162,14 @@ static void qxl_release_free_list(struct qxl_release *release) { while (!list_empty(&release->bos)) { - struct ttm_validate_buffer *entry; + struct qxl_bo_list *entry; + struct qxl_bo *bo; entry = container_of(release->bos.next, - struct ttm_validate_buffer, head); - - list_del(&entry->head); + struct qxl_bo_list, tv.head); + bo = to_qxl_bo(entry->tv.bo); + qxl_bo_unref(&bo); + list_del(&entry->tv.head); kfree(entry); } } -- 2.0.4