Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp1421811ybl; Fri, 13 Dec 2019 15:14:33 -0800 (PST) X-Google-Smtp-Source: APXvYqxvx+nk+6ludd0iVoRYm1vQSC/rkrxALx0bD1OH6Rn4q81b3qF4w45pqejkTYypUOr/12Vb X-Received: by 2002:a9d:2904:: with SMTP id d4mr16703750otb.214.1576278873721; Fri, 13 Dec 2019 15:14:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576278873; cv=none; d=google.com; s=arc-20160816; b=onyOnDR4FDAFUie/xHhgd/j2h/95OBouP9dSamNQEDRQ0EktLrQz2ypxptpTreWjhg KFFAzC2h9FRS7HcX555lS0ejS4/I4TdhSnRQLM24A5F7e0xiU+xH+jHtHwuCULBg5vWP Wa19C2y7zt6f7IhYGmpFb1KywvZNiiB+G59ctfoyXQe14E3hQrKd3paRBT8oLb54Stct 7VU70GFybdhco3Id30C307e6m7xc0Q1Mpdxw0L4PyvIcqFgP9mK/Cpn6gmLkiKHl/lc+ saU2pYEvSWOnzN2vSCwJBcI1+0hYi0IkdZ/VU9o7WxsTboK+FLozhyWVJ+7ob5z3sR5D 7b1Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=qr1NA7k5H7qzp5dwM0/ZMzIFbRcfJk0GJJ9m/HNrPnU=; b=w9XbvZDeyxuxXFaRJeBe1nooE58jD9/2CPIkXn9vYy4XdnvYONuDTK1RlxPa+4W2/X LfyrZ1IIrmW7bnXsBJhWouk2e1xtKbzbV+3nrssvXWNjvaK6zRN1yjQpL+/aOie9BKev TcZz8zmMo4iXXzJJ0Z7YdTOu319ZIRP5jHGd+B4XuaQCC8CJ9HGmpicuB0eNExNBCAJQ iGgCLS9VuSEOblaiqU3TZFIhMEFzIAaFB6cEik/Ll4sJuKEBFakNLVQmkEMMS/gz8xbt A6wlTRAVLvKAdqLwGexJeJAbsmStVTd2X9yNxbRGbKWxjrI+LKBljPMnarszW2bajCeP MKRg== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d17si5608982otc.245.2019.12.13.15.14.22; Fri, 13 Dec 2019 15:14:33 -0800 (PST) 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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726736AbfLMXMg (ORCPT + 99 others); Fri, 13 Dec 2019 18:12:36 -0500 Received: from mga06.intel.com ([134.134.136.31]:64745 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725747AbfLMXMf (ORCPT ); Fri, 13 Dec 2019 18:12:35 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Dec 2019 15:12:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,311,1571727600"; d="scan'208";a="211583507" Received: from iweiny-desk2.sc.intel.com ([10.3.52.157]) by fmsmga008.fm.intel.com with ESMTP; 13 Dec 2019 15:12:34 -0800 Date: Fri, 13 Dec 2019 15:12:34 -0800 From: Ira Weiny To: Navid Emamdoost Cc: Andrew Morton , "Kirill A. Shutemov" , Keith Busch , linux-mm@kvack.org, linux-kernel@vger.kernel.org, emamd001@umn.edu, jhubbard@nvidia.com Subject: Re: [PATCH v2] mm/gup: Fix memory leak in __gup_benchmark_ioctl Message-ID: <20191213231234.GB8347@iweiny-DESK2.sc.intel.com> References: <9a692d27-4654-f1fc-d4c5-c6efba02c8a9@nvidia.com> <20191213223751.4089-1-navid.emamdoost@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20191213223751.4089-1-navid.emamdoost@gmail.com> User-Agent: Mutt/1.11.1 (2018-12-01) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Dec 13, 2019 at 04:37:41PM -0600, Navid Emamdoost wrote: > In the implementation of __gup_benchmark_ioctl() the allocated pages > should be released before returning in case of an invalid cmd. Release > pages via kvfree() by goto done. > > Fixes: 714a3a1ebafe ("mm/gup_benchmark.c: add additional pinning methods") > Signed-off-by: Navid Emamdoost Reviewed-by: Ira Weiny > --- > Changes in v2: > -- added goto and ret value instead of return -1. > --- > mm/gup_benchmark.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/mm/gup_benchmark.c b/mm/gup_benchmark.c > index b160638f647e..b773b2568544 100644 > --- a/mm/gup_benchmark.c > +++ b/mm/gup_benchmark.c > @@ -24,7 +24,7 @@ static int __gup_benchmark_ioctl(unsigned int cmd, > { > ktime_t start_time, end_time; > unsigned long i, nr_pages, addr, next; > - int nr; > + int nr, ret = 0; > struct page **pages; > > if (gup->size > ULONG_MAX) > @@ -63,8 +63,8 @@ static int __gup_benchmark_ioctl(unsigned int cmd, > NULL); > break; > default: > - kvfree(pages); > - return -1; > + ret = -EINVAL; > + goto done; > } > > if (nr <= 0) > @@ -85,8 +85,9 @@ static int __gup_benchmark_ioctl(unsigned int cmd, > end_time = ktime_get(); > gup->put_delta_usec = ktime_us_delta(end_time, start_time); > > +done: > kvfree(pages); > - return 0; > + return ret; > } > > static long gup_benchmark_ioctl(struct file *filep, unsigned int cmd, > -- > 2.17.1 > >