Received: by 10.223.185.116 with SMTP id b49csp909822wrg; Tue, 20 Feb 2018 09:46:48 -0800 (PST) X-Google-Smtp-Source: AH8x225v/ErTcaYW0LrxhaXQVkNsu98xwVDJLx6JwqfyLHKBY9is6sYtaor3femYP/TRpm8Ugh// X-Received: by 10.99.171.10 with SMTP id p10mr343246pgf.176.1519148808599; Tue, 20 Feb 2018 09:46:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519148808; cv=none; d=google.com; s=arc-20160816; b=FHB3Us2TE/Zc9Cz1GGstXxMMMZ2w0piDFQN9EgQDimdtMZ69135s0yPPJZRwx8YVc4 /VxaKgu1xL6bgOc6cQGhsXo4q3sM4j7f3XR2YZUroFBUMtJQKVDDVF3bnHr3Show1Umu yvhk4s23+pgz8GZ1VPhE6jteOk/R9bzuq+AVkJzsCtY4cH8Oxo0lkNgVvEUI8qd9EDLu 7Ic93E4BRy5fKlo05KT/raOB5wcl/Oos3lNPh3UPX2KlgSfFa7u0JtrEm8f1pIwY5gNW MgLOy85TZgDzhmJbCoSz8Jk/Als76eCJh0j8gG0XxVd0Vf8o3BsghJseCQNpzr0p5/M8 7j6g== 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=QQRLukBQ8pLYvfDX+iuKJ21qRZTecCFETj18348Xn30=; b=yT3L6BiaYiW1U0uK8UMuDE4drB0lpw1kJWAP7Q5l5KVgH4BbUh6mLw2Nm3mFbis49w 3B+PRNUa6JQE88ssCTS5GBsaR+w3jxTUceedyYalJ3HRQoWB6t2bGSZZUeL2F0B+GkwL 4l5HNh5UwrerAEK6pAiJLOenY0AQn0rr4q7f/ZrTGKA9RQtSdlwRlSj/91HbOO0pC0af s+x66k/exRN/+oiGS2cmjSuqmIpTt6Lui2nASOW3XjVqHOtHdp2Ft0OHFM4FBaxRQuP+ 8IHaiu0b++JikGhhpe3buvZnu27hxtNciUGfiF2sf/beorsFgJ05wW4hOMhuCUTWjH8w E9sA== 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 e13-v6si9385666pln.750.2018.02.20.09.46.33; Tue, 20 Feb 2018 09:46:48 -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 S1753416AbeBTRpU (ORCPT + 99 others); Tue, 20 Feb 2018 12:45:20 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:13621 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753384AbeBTRpS (ORCPT ); Tue, 20 Feb 2018 12:45:18 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 3zm7LF0nfVz9v2g5; Tue, 20 Feb 2018 18:45:09 +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 5WxRk1W95M1A; Tue, 20 Feb 2018 18:45:09 +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 3zm7LF0Bwmz9v2ft; Tue, 20 Feb 2018 18:45:09 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 95E7E8B8A7; Tue, 20 Feb 2018 18:45:17 +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 1Y93S-cE7IB4; Tue, 20 Feb 2018 18:45:17 +0100 (CET) Received: from [192.168.232.53] (unknown [192.168.232.53]) by messagerie.si.c-s.fr (Postfix) with ESMTP id E4C888B89F; Tue, 20 Feb 2018 18:45:16 +0100 (CET) Subject: Re: [PATCH 1/6] powerpc/mm/32: Use pfn_valid to check if pointer is in RAM To: =?UTF-8?Q?Jonathan_Neusch=c3=a4fer?= , linuxppc-dev@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org, Michael Ellerman , linux-mm@kvack.org, Joel Stanley , Benjamin Herrenschmidt , Paul Mackerras , Balbir Singh , Guenter Roeck References: <20180220161424.5421-1-j.neuschaefer@gmx.net> <20180220161424.5421-2-j.neuschaefer@gmx.net> From: christophe leroy Message-ID: <0d14cb2c-dd00-d258-cb15-302b2a9d684f@c-s.fr> Date: Tue, 20 Feb 2018 18:45:09 +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: <20180220161424.5421-2-j.neuschaefer@gmx.net> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr Content-Transfer-Encoding: 8bit X-Antivirus: Avast (VPS 180220-2, 20/02/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 20/02/2018 à 17:14, Jonathan Neuschäfer a écrit : > The Nintendo Wii has a memory layout that places two chunks of RAM at > non-adjacent addresses, and MMIO between them. Currently, the allocation > of these MMIO areas is made possible by declaring the MMIO hole as > reserved memory and allowing reserved memory to be allocated (cf. > wii_memory_fixups). > > This patch is the first step towards proper support for discontiguous > memory on PPC32 by using pfn_valid to check if a pointer points into > RAM, rather than open-coding the check. It should result in no > functional difference. > > Signed-off-by: Jonathan Neuschäfer > --- > arch/powerpc/mm/pgtable_32.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c > index d35d9ad3c1cd..b5c009893a44 100644 > --- a/arch/powerpc/mm/pgtable_32.c > +++ b/arch/powerpc/mm/pgtable_32.c > @@ -147,7 +147,7 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags, > * Don't allow anybody to remap normal RAM that we're using. > * mem_init() sets high_memory so only do the check after that. > */ > - if (slab_is_available() && (p < virt_to_phys(high_memory)) && > + if (slab_is_available() && pfn_valid(__phys_to_pfn(p)) && I'm not sure this is equivalent: high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); #define ARCH_PFN_OFFSET ((unsigned long)(MEMORY_START >> PAGE_SHIFT)) #define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && (pfn) < max_mapnr) set_max_mapnr(max_pfn); So in the current implementation it checks against max_low_pfn while your patch checks against max_pfn max_low_pfn = max_pfn = memblock_end_of_DRAM() >> PAGE_SHIFT; #ifdef CONFIG_HIGHMEM max_low_pfn = lowmem_end_addr >> PAGE_SHIFT; #endif Christophe > !(__allow_ioremap_reserved && memblock_is_region_reserved(p, size))) { > printk("__ioremap(): phys addr 0x%llx is RAM lr %ps\n", > (unsigned long long)p, __builtin_return_address(0)); > --- L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast. https://www.avast.com/antivirus