Received: by 10.223.185.116 with SMTP id b49csp1867410wrg; Sun, 4 Mar 2018 11:57:59 -0800 (PST) X-Google-Smtp-Source: AG47ELt2P2Zd+Ki+LbrEbIWjTKrD6fEQWG9WHmx4aFEOABAW3kkLUKU0IP+++cmmFLFmKi8Q+2ae X-Received: by 2002:a17:902:6884:: with SMTP id i4-v6mr10951630plk.259.1520193478984; Sun, 04 Mar 2018 11:57:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520193478; cv=none; d=google.com; s=arc-20160816; b=XuKDBHlll0wBmVo28Pq9r6rdzDpxNP4h8xv9zK4DmkFDTQ5PyoOCJKmib0sJeGezLK 6/sN8EKo2q8F9fTyJtgOCtsZXTutri6eeEeCBunyef+tJ9wDXWZJ0jN5I4yxDnSNuLDk 6MR9zfS3V//5+Qc8L4clDS/BJUJImXlgWa6Io662KMI33t6kvCHnEhrFPJTWlpUuENjW OlqqTj54o31pDT0uPdkv/vbAMmYR2EtDNh89UDgKGz1nCKZQcFT+DV4nWZqcbnz0EVXW vfStuw0j/KTRcaPvbnANQQ2BHDlC8CwM/1/bYmRRmauFIN/lSAVjPjj3Rn8wRzJRIk/E 3OKg== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=dkJ+cOmVwlyxm0T85lqufAf9Yg4i/gUXP5qWc0Yuv20=; b=Xi3Lg5q8TD9XzIdvh9QcnwMZv2x3CNZhLBSVGygOn3b7rFd2vSOO6ONzFJ4bx4dfm0 2NLjmtFG+04zq99PcCH48pTRS+rZb4lI2J9EImq5Wdr/wVErsGN+u650zX/w37ubEe8O K18P4HHA9r+S0QVObMpSB1Ib/PtJMHyGi9SNMSsvTj9+aAP3bG20tZNAs+2NJ+LJadpD wDCl1CMf3vgn4TlxATNe+qNksi9Pcfe6AQAQDf2yI8Gu76OcEoHqFN/A4rUYrd4UzVGU oeylST37s4kJvWgIC2PCRAinck5HBnrHUHmC0RLkpuw7RDUUAq7ixcr8BuOklJfHNrfJ r4cA== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v27si8913556pfa.387.2018.03.04.11.57.45; Sun, 04 Mar 2018 11:57:58 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932251AbeCDTqs (ORCPT + 99 others); Sun, 4 Mar 2018 14:46:48 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:2096 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932090AbeCDTqq (ORCPT ); Sun, 4 Mar 2018 14:46:46 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 3zvYSx3BJkz9tvlh; Sun, 4 Mar 2018 20:46:41 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at c-s.fr Received: from pegase1.c-s.fr ([192.168.12.234]) by localhost (pegase1.c-s.fr [192.168.12.234]) (amavisd-new, port 10024) with ESMTP id kDGgCygKUTFQ; Sun, 4 Mar 2018 20:46:41 +0100 (CET) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id 3zvYSx2Z0lz9tvlg; Sun, 4 Mar 2018 20:46:41 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 5C2BA8B906; Sun, 4 Mar 2018 20:46:45 +0100 (CET) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 5O3CrnMlnHQm; Sun, 4 Mar 2018 20:46:45 +0100 (CET) Received: from [192.168.232.53] (unknown [192.168.232.53]) by messagerie.si.c-s.fr (Postfix) with ESMTP id B187E8B8F8; Sun, 4 Mar 2018 20:46:44 +0100 (CET) Subject: Re: [PATCH 05/21] powerpc: Avoid comparison of unsigned long >= 0 in pfn_valid To: Michael Ellerman , Mathieu Malaterre Cc: linux-kernel@vger.kernel.org, Paul Mackerras , Jiri Slaby , linuxppc-dev@lists.ozlabs.org References: <20180225172236.29650-1-malat@debian.org> <20180225172236.29650-6-malat@debian.org> <87lgf8gley.fsf@concordia.ellerman.id.au> From: christophe leroy Message-ID: <8be155ab-ec2c-2b1e-89a2-02f8e9f0d0ba@c-s.fr> Date: Sun, 4 Mar 2018 20:46:44 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <87lgf8gley.fsf@concordia.ellerman.id.au> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit X-Antivirus: Avast (VPS 180304-0, 04/03/2018), Outbound message X-Antivirus-Status: Clean Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le 04/03/2018 à 11:55, Michael Ellerman a écrit : > Mathieu Malaterre writes: > >> Rewrite comparison since all values compared are of type `unsigned long`. >> >> Fix a warning (treated as error in W=1): >> >> CC arch/powerpc/kernel/irq.o >> In file included from ./include/linux/bug.h:5:0, >> from ./include/linux/cpumask.h:13, >> from ./include/linux/smp.h:13, >> from ./include/linux/kernel_stat.h:5, >> from arch/powerpc/kernel/irq.c:35: >> ./include/linux/dma-mapping.h: In function ‘dma_map_resource’: >> ./arch/powerpc/include/asm/page.h:129:32: error: comparison of unsigned expression >= 0 is always true [-Werror=type-limits] >> #define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && (pfn) < max_mapnr) >> ^ >> Suggested-by: Segher Boessenkool >> Signed-off-by: Mathieu Malaterre >> --- >> arch/powerpc/include/asm/page.h | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h >> index 8da5d4c1cab2..19dea64e7ed2 100644 >> --- a/arch/powerpc/include/asm/page.h >> +++ b/arch/powerpc/include/asm/page.h >> @@ -126,7 +126,8 @@ extern long long virt_phys_offset; >> >> #ifdef CONFIG_FLATMEM >> #define ARCH_PFN_OFFSET ((unsigned long)(MEMORY_START >> PAGE_SHIFT)) >> -#define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && (pfn) < max_mapnr) >> +#define pfn_valid(pfn) \ >> + (((pfn) - ARCH_PFN_OFFSET) < (max_mapnr - ARCH_PFN_OFFSET)) > > I'm not a big fan of this one, because the original code is *far* more > obvious as to what it's doing. > > I'm not sure if we can make this one a static inline, or whether that > would help, but it would be worth investigating. > The following seems to give a good result: diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h index 8da5d4c1cab2..6f74938483b7 100644 --- a/arch/powerpc/include/asm/page.h +++ b/arch/powerpc/include/asm/page.h @@ -126,7 +126,15 @@ extern long long virt_phys_offset; #ifdef CONFIG_FLATMEM #define ARCH_PFN_OFFSET ((unsigned long)(MEMORY_START >> PAGE_SHIFT)) -#define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && (pfn) < max_mapnr) +#ifndef __ASSEMBLY__ +extern unsigned long max_mapnr; +static inline bool pfn_valid(unsigned long pfn) +{ + unsigned long min_pfn = ARCH_PFN_OFFSET; + + return pfn >= min_pfn && pfn < max_mapnr; +} +#endif #endif #define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) Christophe --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus