Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp1561947pxu; Thu, 8 Oct 2020 15:00:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwS+ZFIlcs04bqMDFNHSNsTYxNe105OhA7spnZNztqTH8FtWsGL1SdKpVDrx46k287YWIYr X-Received: by 2002:a05:6402:3c1:: with SMTP id t1mr10912768edw.231.1602194425862; Thu, 08 Oct 2020 15:00:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602194425; cv=none; d=google.com; s=arc-20160816; b=SbCVvK2GysbgUCDbYy5zPXXz0Qb8UcNVrinUP+DGw2lXI0+kgdLUpEuqs7ThyjIJTw vSpnFLCDQqZI95kh7ckUStWyg8pTa3E900UNdxSMd4a1Rx/2DFWmFgj2na7ZfsZnaIls P4uil4VhZPWnD8DVa/V+xZoqOQZs8qU++E6cWnfQ1CYKRrOLIdzSvUUVNh0iPc6caElR VpmKYCB1Jaysg68aRX9dru8PYiLE15zNwpGDxNesrHZeKLbDpjG+ue7kKMu2FMG+a4T0 FkfBOngHWgol5+S/1eRYnR6u9gg7GS7GeATADdpvV6HK/cxEjJIoeLh7zVAzybVKKYrv UMAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject; bh=7i3jZC1P+1sGlWP35B+/rJtJPgw2xaej/RUlAUDj20A=; b=KWk83wNx69ty1ad+n4VQ3NLSbE+Mw4sg1FCORVuRVWZxWZK8PqrCjsrF2B0JcUA9fP HqiLZFoF6cPwweAowGzhGI63cgSQMOdFuX/BbU62hSZMQlhZO6KznxsEgSl/Rd2kZQt0 KduSfmsR85RdUeD3IPymxFFStxGZVNxh6GPR4aYY5JqHpa/GgC0aoAVus/p2ofkd6dH3 zktu1bfBl+ohENCF7N0qNcWkrJyyQV3Sz0LpVYCrNXQBdt7pZIgzLmoymUP+F4XmLfEZ fJ4sf8VaRjc8XwG34H3sJtjq9/OX1JHuIefckVGDfjVbtcG9E4BDB4DM8wyO7uBMm3s6 X2Vw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=lT3noPjN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g24si4407198edq.128.2020.10.08.15.00.02; Thu, 08 Oct 2020 15:00:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=lT3noPjN; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728837AbgJHVtE (ORCPT + 99 others); Thu, 8 Oct 2020 17:49:04 -0400 Received: from hqnvemgate26.nvidia.com ([216.228.121.65]:5601 "EHLO hqnvemgate26.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726115AbgJHVtE (ORCPT ); Thu, 8 Oct 2020 17:49:04 -0400 Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Thu, 08 Oct 2020 14:48:51 -0700 Received: from [10.2.48.215] (10.124.1.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 8 Oct 2020 21:49:03 +0000 Subject: Re: [PATCH 1/4] mm: introduce vma_set_file function v2 To: =?UTF-8?Q?Christian_K=c3=b6nig?= , , , , , , , , , , References: <20201008112342.9394-1-christian.koenig@amd.com> From: John Hubbard Message-ID: Date: Thu, 8 Oct 2020 14:49:03 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 MIME-Version: 1.0 In-Reply-To: <20201008112342.9394-1-christian.koenig@amd.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.124.1.5] X-ClientProxiedBy: HQMAIL101.nvidia.com (172.20.187.10) To HQMAIL107.nvidia.com (172.20.187.13) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1602193731; bh=7i3jZC1P+1sGlWP35B+/rJtJPgw2xaej/RUlAUDj20A=; h=Subject:To:References:From:Message-ID:Date:User-Agent: MIME-Version:In-Reply-To:Content-Type:Content-Language: Content-Transfer-Encoding:X-Originating-IP:X-ClientProxiedBy; b=lT3noPjN6nsazaxazrkTAZJXXDq9MU9e9CfYXSbXg8tSCVoorFGM7M/YNUCd42FT1 dKH9AByZMwx2YXJQZ83lwCkaqFQWC0YvYb72NUHoCzveaWNranS7KsOFaeMzZWy/6E 5FA2ekF8rcO0uhRvVWrbzMmRyHVliNxHzH1Fb166Kd05XkEfBR7t0cddAjnymHDbXa as1wSoVJUoD2zt85swdV8Nl4uYzpW/NZFRmJUKfoaSVqZndhrNIn8JS0NbNJMifnxt X8UwMogZrGtl7zMXYwFpjv6td0b4hP7ukBua0ValYvHsujD4xfCzvmvEgmO/MImwBb 8l3Yz+o5Z5zjg== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/8/20 4:23 AM, Christian K=C3=B6nig wrote: > Add the new vma_set_file() function to allow changing > vma->vm_file with the necessary refcount dance. >=20 > v2: add more users of this. >=20 > Signed-off-by: Christian K=C3=B6nig > --- > drivers/dma-buf/dma-buf.c | 16 +++++----------- > drivers/gpu/drm/etnaviv/etnaviv_gem.c | 4 +--- > drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 3 +-- > drivers/gpu/drm/i915/gem/i915_gem_mman.c | 4 ++-- > drivers/gpu/drm/msm/msm_gem.c | 4 +--- > drivers/gpu/drm/omapdrm/omap_gem.c | 3 +-- > drivers/gpu/drm/vgem/vgem_drv.c | 3 +-- > drivers/staging/android/ashmem.c | 5 ++--- > include/linux/mm.h | 2 ++ > mm/mmap.c | 16 ++++++++++++++++ > 10 files changed, 32 insertions(+), 28 deletions(-) Looks like a nice cleanup. Two comments below. ... > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i= 915/gem/i915_gem_mman.c > index 3d69e51f3e4d..c9d5f1a38af3 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c > @@ -893,8 +893,8 @@ int i915_gem_mmap(struct file *filp, struct vm_area_s= truct *vma) > * requires avoiding extraneous references to their filp, hence why > * we prefer to use an anonymous file for their mmaps. > */ > - fput(vma->vm_file); > - vma->vm_file =3D anon; > + vma_set_file(vma, anon); > + fput(anon); That's one fput() too many, isn't it? ... > diff --git a/drivers/staging/android/ashmem.c b/drivers/staging/android/a= shmem.c > index 10b4be1f3e78..a51dc089896e 100644 > --- a/drivers/staging/android/ashmem.c > +++ b/drivers/staging/android/ashmem.c > @@ -450,9 +450,8 @@ static int ashmem_mmap(struct file *file, struct vm_a= rea_struct *vma) > vma_set_anonymous(vma); > } > =20 > - if (vma->vm_file) > - fput(vma->vm_file); > - vma->vm_file =3D asma->file; > + vma_set_file(vma, asma->file); > + fput(asma->file); Same here: that fput() seems wrong, as it was already done within vma_set_f= ile(). thanks, --=20 John Hubbard NVIDIA