From patchwork Fri Jul 13 15:49:14 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Johannes Obermayr X-Patchwork-Id: 1196191 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id D67DB3FC4C for ; Fri, 13 Jul 2012 15:52:25 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 048C7A1157 for ; Fri, 13 Jul 2012 08:52:26 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.22]) by gabe.freedesktop.org (Postfix) with SMTP id 23AA79E8B6 for ; Fri, 13 Jul 2012 08:51:23 -0700 (PDT) Received: (qmail invoked by alias); 13 Jul 2012 15:51:22 -0000 Received: from p57915C2C.dip.t-dialin.net (EHLO jobermayr.MSHEIMNETZ) [87.145.92.44] by mail.gmx.net (mp024) with SMTP; 13 Jul 2012 17:51:22 +0200 X-Authenticated: #1405430 X-Provags-ID: V01U2FsdGVkX18xQvQioc8xmq3eiW1IAqu7XxdABB+CPvcw8xAY4R 0s7nDDWGjqjWp2 From: Johannes Obermayr To: dri-devel@lists.freedesktop.org Subject: [PATCH 2/5] libkms/nouveau.c: Fix a memory leak and cleanup code a bit. Date: Fri, 13 Jul 2012 17:49:14 +0200 Message-Id: <1342194557-4144-3-git-send-email-johannesobermayr@gmx.de> X-Mailer: git-send-email 1.7.7 In-Reply-To: <1342194557-4144-1-git-send-email-johannesobermayr@gmx.de> References: <1342194557-4144-1-git-send-email-johannesobermayr@gmx.de> X-Y-GMX-Trusted: 0 Cc: Johannes Obermayr X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org --- libkms/nouveau.c | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/libkms/nouveau.c b/libkms/nouveau.c index 0e24a15..4cbca96 100644 --- a/libkms/nouveau.c +++ b/libkms/nouveau.c @@ -94,14 +94,18 @@ nouveau_bo_create(struct kms_driver *kms, if (!bo) return -ENOMEM; - if (type == KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8) { + switch (type) { + case KMS_BO_TYPE_CURSOR_64X64_A8R8G8B8: pitch = 64 * 4; size = 64 * 64 * 4; - } else if (type == KMS_BO_TYPE_SCANOUT_X8R8G8B8) { + break; + case KMS_BO_TYPE_SCANOUT_X8R8G8B8: pitch = width * 4; pitch = (pitch + 512 - 1) & ~(512 - 1); size = pitch * height; - } else { + break; + default: + free(bo); return -EINVAL; } @@ -114,8 +118,10 @@ nouveau_bo_create(struct kms_driver *kms, arg.channel_hint = 0; ret = drmCommandWriteRead(kms->fd, DRM_NOUVEAU_GEM_NEW, &arg, sizeof(arg)); - if (ret) - goto err_free; + if (ret) { + free(bo); + return ret; + } bo->base.kms = kms; bo->base.handle = arg.info.handle; @@ -126,10 +132,6 @@ nouveau_bo_create(struct kms_driver *kms, *out = &bo->base; return 0; - -err_free: - free(bo); - return ret; } static int