Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757644AbcK3JQq (ORCPT ); Wed, 30 Nov 2016 04:16:46 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:33867 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752818AbcK3JQj (ORCPT ); Wed, 30 Nov 2016 04:16:39 -0500 Date: Wed, 30 Nov 2016 10:16:37 +0100 From: Michal Hocko To: Yuriy Kolerov Cc: linux-snps-arc@lists.infradead.org, Vineet.Gupta1@synopsys.com, Alexey.Brodkin@synopsys.com, linux-kernel@vger.kernel.org Subject: Re: [RFC] ARC: mm: Restrict definition of pfn_valid() macro for CONFIG_FLATMEM Message-ID: <20161130091637.GC18437@dhcp22.suse.cz> References: <1480433346-18054-1-git-send-email-yuriy.kolerov@synopsys.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1480433346-18054-1-git-send-email-yuriy.kolerov@synopsys.com> User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1099 Lines: 35 On Tue 29-11-16 18:29:06, Yuriy Kolerov wrote: > Despite the fact that subtraction of unsigned integers is a defined > behaviour however such operations can lead to unexpected results. Thus > it is better to check both left and right boundaries to avoid potential > bugs as it done in the generic page.h. Why and which code would use an out of range pfn? Why other arches do not need to care? > > Signed-off-by: Yuriy Kolerov > --- > arch/arc/include/asm/page.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arc/include/asm/page.h b/arch/arc/include/asm/page.h > index 296c342..81cfc6c7 100644 > --- a/arch/arc/include/asm/page.h > +++ b/arch/arc/include/asm/page.h > @@ -88,7 +88,7 @@ typedef pte_t * pgtable_t; > #define ARCH_PFN_OFFSET virt_to_pfn(CONFIG_LINUX_LINK_BASE) > > #ifdef CONFIG_FLATMEM > -#define pfn_valid(pfn) (((pfn) - ARCH_PFN_OFFSET) < max_mapnr) > +#define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && ((pfn) - ARCH_PFN_OFFSET) < max_mapnr) > #endif > > /* > -- > 2.7.4 > -- Michal Hocko SUSE Labs