From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B79CCC43381 for ; Tue, 5 Mar 2019 23:51:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7EFCB20661 for ; Tue, 5 Mar 2019 23:51:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=nvidia.com header.i=@nvidia.com header.b="nEk84GlD" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728861AbfCEXvf (ORCPT ); Tue, 5 Mar 2019 18:51:35 -0500 Received: from hqemgate14.nvidia.com ([216.228.121.143]:3576 "EHLO hqemgate14.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727570AbfCEXve (ORCPT ); Tue, 5 Mar 2019 18:51:34 -0500 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate14.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Tue, 05 Mar 2019 15:51:34 -0800 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Tue, 05 Mar 2019 15:51:33 -0800 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Tue, 05 Mar 2019 15:51:33 -0800 Received: from [10.110.48.28] (172.20.13.39) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 5 Mar 2019 23:51:33 +0000 Subject: Re: [PATCH] mm/hmm: fix unused variable warnings To: Arnd Bergmann , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= CC: Andrew Morton , Ralph Campbell , Stephen Rothwell , Dan Williams , , References: <20190304200026.1140281-1-arnd@arndb.de> From: John Hubbard X-Nvconfidentiality: public Message-ID: Date: Tue, 5 Mar 2019 15:51:33 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190304200026.1140281-1-arnd@arndb.de> X-Originating-IP: [172.20.13.39] X-ClientProxiedBy: HQMAIL106.nvidia.com (172.18.146.12) To HQMAIL101.nvidia.com (172.20.187.10) Content-Type: text/plain; charset="utf-8" Content-Language: en-US-large Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1551829894; bh=qATl0olHTx+GwNgvJm69zDapss6pdR6QwqlMRQ/5Y5o=; h=X-PGP-Universal:Subject:To:CC:References:From:X-Nvconfidentiality: Message-ID:Date:User-Agent:MIME-Version:In-Reply-To: X-Originating-IP:X-ClientProxiedBy:Content-Type:Content-Language: Content-Transfer-Encoding; b=nEk84GlD/4KXT+psnVGHU/VmqWSUd8S9zR4O0C9SM2Whkhra47krqLNU+IIFNkuE3 BSqfgnM6OkoKcJ6+0my5pBK75a1tIkTNswq141jxxmnPm+oxZsaiVV9ChpfMlh+mYM k4yFBx5qRpB4acMjSo8v1t26mTk011AtREAJyG+UoUOYEvkoBx8X9/Bp400+5IKevx iJUyZGrsu7/hltPoImvlE7BhGRLO7bok2pktSdDeW9INljMf6u7NiE/lk2Fl5qX7WV II6wTairReiyCuv9T22j/42AITmpwJGDC8DqZOsg2Ixp8tKq0Dpf1GVVNswp8E3Cbf 5FoU3LOgy/mJQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/4/19 12:00 PM, Arnd Bergmann wrote: > When CONFIG_HUGETLB_PAGE is disabled, the only use of the variable 'h' > is compiled out, and the compiler thinks it is unnecessary: >=20 > mm/hmm.c: In function 'hmm_range_snapshot': > mm/hmm.c:1015:19: error: unused variable 'h' [-Werror=3Dunused-variable] > struct hstate *h =3D hstate_vma(vma); >=20 > Rephrase the code to avoid the temporary variable instead, so the > compiler stops warning. >=20 > Fixes: 5409a90d4212 ("mm/hmm: support hugetlbfs (snapshotting, faulting a= nd DMA mapping)") > Signed-off-by: Arnd Bergmann > --- > mm/hmm.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) >=20 > diff --git a/mm/hmm.c b/mm/hmm.c > index 3c9781037918..c4beb1628cad 100644 > --- a/mm/hmm.c > +++ b/mm/hmm.c > @@ -1012,9 +1012,8 @@ long hmm_range_snapshot(struct hmm_range *range) > return -EFAULT; > =20 > if (is_vm_hugetlb_page(vma)) { > - struct hstate *h =3D hstate_vma(vma); > - > - if (huge_page_shift(h) !=3D range->page_shift && > + if (range->page_shift !=3D > + huge_page_shift(hstate_vma(vma)) && > range->page_shift !=3D PAGE_SHIFT) > return -EINVAL; > } else { > @@ -1115,9 +1114,8 @@ long hmm_range_fault(struct hmm_range *range, bool = block) > return -EFAULT; > =20 > if (is_vm_hugetlb_page(vma)) { > - struct hstate *h =3D hstate_vma(vma); > - > - if (huge_page_shift(h) !=3D range->page_shift && > + if (range->page_shift !=3D > + huge_page_shift(hstate_vma(vma)) && > range->page_shift !=3D PAGE_SHIFT) > return -EINVAL; > } else { >=20 Hi Arnd, With some Kconfig local hacks that removed all HUGE* support, while leaving HMM enabled, I was able to reproduce your results, and also to verify the fix. It also makes sense from reading it. Also, I ran into one more warning as well: mm/hmm.c: In function =E2=80=98hmm_vma_walk_pud=E2=80=99: mm/hmm.c:764:25: warning: unused variable =E2=80=98vma=E2=80=99 [-Wunused-v= ariable] struct vm_area_struct *vma =3D walk->vma; ^~~ ...which can be fixed like this: diff --git a/mm/hmm.c b/mm/hmm.c index c4beb1628cad..c1cbe82d12b5 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -761,7 +761,6 @@ static int hmm_vma_walk_pud(pud_t *pudp, { struct hmm_vma_walk *hmm_vma_walk =3D walk->private; struct hmm_range *range =3D hmm_vma_walk->range; - struct vm_area_struct *vma =3D walk->vma; unsigned long addr =3D start, next; pmd_t *pmdp; pud_t pud; @@ -807,7 +806,7 @@ static int hmm_vma_walk_pud(pud_t *pudp, return 0; } =20 - split_huge_pud(vma, pudp, addr); + split_huge_pud(walk->vma, pudp, addr); if (pud_none(*pudp)) goto again; ...so maybe you'd like to fold that into your patch? thanks, --=20 John Hubbard NVIDIA