Received: by 2002:ac0:a582:0:0:0:0:0 with SMTP id m2-v6csp3922705imm; Mon, 8 Oct 2018 11:44:43 -0700 (PDT) X-Google-Smtp-Source: ACcGV61ZkUEsS2PoXn81YSwiXUcnaN7dxm3Z+xk3c2SNjaSsLqGh5CfbQzoIxazZbfoQnr9mlRdh X-Received: by 2002:a62:62c3:: with SMTP id w186-v6mr15415657pfb.5.1539024283219; Mon, 08 Oct 2018 11:44:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1539024283; cv=none; d=google.com; s=arc-20160816; b=b0UCLYFPogVjTKHKKhqqI4mbQadm50n9eCc2yh/PkVm+m7NpPTSeVLlhrZwZGqB1Lo bgtj/r7c43xmn0f5u9+pTEUgt76Y5tRAAiKfwZn+B1tTHQidBAPJ+IK3zyVyX5HT+YiR PiJR/nKDFOO+ZASY8R+wdel3lZeSIjKDNlAq3mhtMk2BU1IUdg+t+aObNdmP+DoqNAll ULSrRTKBmXBVh5FfT5saEQvwIJmm6MjykHMSs8PJBO/Z1O4bwRltURYIhfKTdj+Avf1q +bx0KfjDeYvs8t28D/5uHT98Jvs+VLC+yBfVbjIv421CoO+Iuq7W4yi1C5ZWX/QXa9Rx eZ0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Ud11AlQDEmKbiqLy0v+cGJ4vh5rq4hYdhtSJA0C6jtQ=; b=Kf4g32KNjEeS3rKd8lvAMDrRkvobYnP+KnSffZ9b/YvQ2sIjttxHudw5bNbk+IFiwR 2OU8bu/7f2WopvwYOH2tDlLoUZT7bvI9Ld/UsR+p366RbFcDqroLp3dHNwppYsFMegBm xFC1SBleuNHb9B5b4BA9xziKaaZs6a9gG24N60u9x5Y1Q1/H4ZnOG7C6RMl+0LXw/kHg rX9I+b5D8uB02QQlWPKEMC+jDm8rViaK4ywREuqqfM7PMFjW284FhimXlESGi4gV5vfb QJj+5d9xroI3YcUe0X1uCsPr4lqcwso5DN2wGezBcIbYGYcI30O/ZSZVIRD+Kp4oXJ+p 745Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Q+lzF+cJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k135-v6si20765112pfd.168.2018.10.08.11.44.28; Mon, 08 Oct 2018 11:44:43 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Q+lzF+cJ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730678AbeJIB5P (ORCPT + 99 others); Mon, 8 Oct 2018 21:57:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:45168 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729988AbeJIB5P (ORCPT ); Mon, 8 Oct 2018 21:57:15 -0400 Received: from localhost (ip-213-127-77-176.ip.prioritytelecom.net [213.127.77.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 309142087D; Mon, 8 Oct 2018 18:44:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1539024250; bh=llu042UDqR+/766t8VziI+j8gv0E4gvYC3x8eGaUhhc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Q+lzF+cJjQxEhDX96BeQpgewTTPUC4MaxCuUl5vZ7T2lorB0Qf4iWhgjk4Lt9QHuB Se3qDE9Pky6zDbE0gWPuSop8Ank3OmAr4T8GWNAhnInc/NI1M38dYp/liC4ObxMEvA fcUzwRUr7Quj2oFcnTAdXLebjQ5a9TJlCcA29T0o= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, =?UTF-8?q?Christian=20K=C3=B6nig?= , Andrey Grodzovsky , Alex Deucher , Sasha Levin Subject: [PATCH 4.14 71/94] drm/amdgpu: fix error handling in amdgpu_cs_user_fence_chunk Date: Mon, 8 Oct 2018 20:31:52 +0200 Message-Id: <20181008175609.941081208@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20181008175605.067676667@linuxfoundation.org> References: <20181008175605.067676667@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: "Christian K?nig" [ Upstream commit 0165de983272d1fae0809ed9db47c46a412279bc ] Slowly leaking memory one page at a time :) Signed-off-by: Christian König Reviewed-by: Andrey Grodzovsky Signed-off-by: Alex Deucher Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -37,6 +37,7 @@ static int amdgpu_cs_user_fence_chunk(st { struct drm_gem_object *gobj; unsigned long size; + int r; gobj = drm_gem_object_lookup(p->filp, data->handle); if (gobj == NULL) @@ -48,20 +49,26 @@ static int amdgpu_cs_user_fence_chunk(st p->uf_entry.tv.shared = true; p->uf_entry.user_pages = NULL; - size = amdgpu_bo_size(p->uf_entry.robj); - if (size != PAGE_SIZE || (data->offset + 8) > size) - return -EINVAL; - - *offset = data->offset; - drm_gem_object_put_unlocked(gobj); + size = amdgpu_bo_size(p->uf_entry.robj); + if (size != PAGE_SIZE || (data->offset + 8) > size) { + r = -EINVAL; + goto error_unref; + } + if (amdgpu_ttm_tt_get_usermm(p->uf_entry.robj->tbo.ttm)) { - amdgpu_bo_unref(&p->uf_entry.robj); - return -EINVAL; + r = -EINVAL; + goto error_unref; } + *offset = data->offset; + return 0; + +error_unref: + amdgpu_bo_unref(&p->uf_entry.robj); + return r; } static int amdgpu_cs_parser_init(struct amdgpu_cs_parser *p, void *data)