Received: by 10.213.65.68 with SMTP id h4csp99073imn; Tue, 27 Mar 2018 17:33:09 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/SOYjU6uZvm2wsMPslTHdNIuDQbI/4vPEafpSyMdcRXo5GQvkIJO8PoEyfAU+79BxIEEYq X-Received: by 10.98.32.134 with SMTP id m6mr1132993pfj.27.1522197189574; Tue, 27 Mar 2018 17:33:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522197189; cv=none; d=google.com; s=arc-20160816; b=Uf3Nu2R+d5Pzet2466v7LjA4nu1Xpvy6DA59PeC+trfC0j6vUq2HTNaLPHPHQPK9q0 rAMJZKmIbJR2b+Fu0db0L8ZfNIP+o1VKe3NHjjJKFeY2vuhsjMp4XEtJcRQddbq71y8j Ibp1YgV2r7MYY1yU3AwOfmuLWS/MOlvbxcP6JkHnLxM6iu4tGcOgACuxM2Q5FLDxgCR6 7SVZnANxSAZ+UJfGEyO22IdI+ONYPkCQR3Rksaf9N2S3SrGVZv4imWJMqPy7FHHeaLaR Qxg+S4UenC5ZKiU97ZS0DRmOG5Ok9vrFPjQk/jm+CyPShkmbOxaCOW6sArakKXUZrPBz a/qw== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=3cTOE5LaAkAd4E4+sx4Ngb6yBpg1vbl4cVinqkfy8EU=; b=WTqOYvFvOQQ/k6/ymO/ZzB5VlpjAdNP33aEvcK49DPj+HvyC0qNTGDHEBnGw0XSI/i VPugbVHqvRnc7mScgQ2xNMpTKhiy5Dea40REdalOYNoju5t1FokIxLIyUnVFi33sPWzO H+v3rfDGtAR04BHiD+6LnZD5QMFJxwvyfFfCgcQDYJK6H9SHdvtmSE+XUk7Nz9ER2adq RzzKDG8UcEON8y3J5whhjrI8GKN2H0VQD8PwROLrsfUp5AduH7VBsncKHCFYl06fLPZP ALOK9bpkLuCZTRg90eeh12vwhwbcqOl+QrbEgki8rgwh7dbyMdg1rU4vFhpS8HY6+QDc 7NFQ== 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 y7si1590925pgp.727.2018.03.27.17.32.55; Tue, 27 Mar 2018 17:33:09 -0700 (PDT) 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 S1752394AbeC1AcE (ORCPT + 99 others); Tue, 27 Mar 2018 20:32:04 -0400 Received: from mout.gmx.net ([212.227.17.22]:55867 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752008AbeC1AcC (ORCPT ); Tue, 27 Mar 2018 20:32:02 -0400 Received: from latitude ([88.153.6.235]) by mail.gmx.com (mrgmx101 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LzXTy-1eVPfO408Y-014myy; Wed, 28 Mar 2018 02:26:09 +0200 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linuxppc-dev@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org, Michael Ellerman , Christophe Leroy , =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= , Benjamin Herrenschmidt , Paul Mackerras , Balbir Singh , Guenter Roeck Subject: [PATCH v2 3/5] powerpc/mm/32: Use page_is_ram to check for RAM Date: Wed, 28 Mar 2018 02:25:42 +0200 Message-Id: <20180328002544.18526-4-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180328002544.18526-1-j.neuschaefer@gmx.net> References: <20180328002544.18526-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:bQG1uSOZ520gD1ATxFq4+MYvYFQ3ICA0Wf9A/Q81VBKCgmmzXEU jbRABMHoa5hW035c0wCE9bCTPjYvB+7N69JkMvMtIWcAKG8t3IM9CbWxkXWLiHPSxWDtzhK hqZqMJPj9MtWtAt/JgBniFmfL5hgLzX3PuoJB7E2d1w0FYtXU7SJO8RL06FTmrM8xvtA6mL IaZirbDQYcsM9VmWyXLMw== X-UI-Out-Filterresults: notjunk:1;V01:K0:CX1cdQ9U4F4=:8lMQxcdYXR8y/35Vc4diwI UaNMFj9E5y17Vqndf7xiNLsj8FpsPzznILF/xzLu/Pea6bnDliWkwA5sT1MQL+svcQtQ1bG4O WB217jfp8OpxPHTlIamarvhMuNuHlrw8kI4gNDk0DG6or3tK9/QcvCKTtjgXGlNQa9XQC+JTZ n40ZcdbvUtFniZlob2U4FCTjwKpROPE1a2HTDj2acS3I+Bfc53FGoky+xozvc5FNAn8jzmiOP bWf0V0NvqbaBkDg6TVWLPw6A97f/a88cdsiBX9NtP3QGU1K+lbVPK5g4OAw5JQBWvsk0nos/x oGbOQX/oy+rLWgipFNAI18TOmBKPZAXkx1YGC2Pnv+JfoWRTIX9l+BJS8aokX0BJTwMQ7kbg3 d5yHK/wIEouxGTajzTF6Po6qfmZ9YjlAN0YqNvd1szwozv9tdr2vk7XSj5bQcWA7DSvJwLlTn z8cfFZzBna9ioU8Ty3GfOO252c4IjbsvCSHeJJOUaGqAgkM1Hs5EZFitJXecC+W7AKVb+0D4x kqHr37Jfl9k8km21/i5wkHx0mkaLnhq0DUu1wMW+LN+D6edp5PchLZq+nrlSE1a24B/zZOuzx eXaM8wmVY+ke9djiwfIVVkBvHM1ac5xHWW5C+g67WViTuOJyyPOJcg52c8o1nY+6wSVlZwfRT q0sw+31cpsVuGEZsVf6dRAEfaaNB//XrnkWajJKLiovhFvJWFuYxwBShRUO3NWY8Y51qzp7U/ +Qyol20tZxnJoKZEPiMv+Y/Rtdo85qjzq3l+FHy6MO0K56eVpNwShNL/fYjOTrq57J2Sw/aPt HVTN6NEtKgoeYqCQy9JE94YgKwLdSBLjdNp4BZNo8RwAUraB+Q= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On systems where there is MMIO space between different blocks of RAM in the physical address space, __ioremap_caller did not allow mapping these MMIO areas, because they were below the end RAM and thus considered RAM as well. Use the memblock-based page_is_ram function, which returns false for such MMIO holes. v2: Keep the check for p < virt_to_phys(high_memory). On 32-bit systems with high memory (memory above physical address 4GiB), the high memory is expected to be available though ioremap. The high_memory variable marks the end of low memory; comparing against it means that only ioremap requests for low RAM will be denied. Reported by Michael Ellerman. Signed-off-by: Jonathan Neuschäfer --- arch/powerpc/mm/pgtable_32.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index d35d9ad3c1cd..6668ecc041ad 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c @@ -148,6 +148,7 @@ __ioremap_caller(phys_addr_t addr, unsigned long size, unsigned long flags, * mem_init() sets high_memory so only do the check after that. */ if (slab_is_available() && (p < virt_to_phys(high_memory)) && + page_is_ram(__phys_to_pfn(p)) && !(__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)); -- 2.16.2