Received: by 2002:ac0:8c9a:0:0:0:0:0 with SMTP id r26csp251724ima; Fri, 1 Feb 2019 02:47:43 -0800 (PST) X-Google-Smtp-Source: ALg8bN7TwATMzYygjR5vaYHfqV+fFH2xj/qyUhzfmk/7vOEOwzHNSM4qVeXu2zTjo2CoRDg61SOR X-Received: by 2002:a17:902:4681:: with SMTP id p1mr39890996pld.184.1549018063160; Fri, 01 Feb 2019 02:47:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549018063; cv=none; d=google.com; s=arc-20160816; b=HdX8yWN69FHPGI/jwRJ4I0HIcM2HAkNT/OJAqOKcOs2rleO36+UzxbOn1WP8PCkf0h NyvIloLOtBAK1JpJc0cHqxyuJHjUK9zqEDO6HbScBYLBA/4lgu2qHlIfrs/4BgH8EQJO 7s1iSv40SVDd8p9JL8LA87Eac1CrcM776q9Tr3nfrC76vPamg27eb7i6S/Vp1RI733iX MaZINHOloscfC+G/XpaMPVJptJpw52NFHNyvGmQgzsbYpioEteSQdl38Ka2oSBTN8kj0 AMWFkPF3pI7MfRmIgu70nPIy8C8Oa1TdaWT0gzQIQf3XWQo+PYlvIK9o62jehwvIQ22Y oPkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:date:cc:to:subject:from:message-id :dkim-signature; bh=FPms630R9DiKGp1RMqTT3ypZmIu6VHUoW+zw+eTiwOU=; b=bV7JhTJuW7jEhowt7cF3OttCAKrdQvi5P3ovr4DnYMw4zr79xbMZNcnC9lNkdFJSJW f6s98LhYHcW1ILMWPTkCKUy4pkGRmaJvSu8FlVzuj66Te6RVq/zRVcGwAK0b2pVbnalt TUSDbG2PPULfOAqaPYfe/aYodEG1ex59ETxZxUGdw5mxNDrZVAvxxF+QIUPkVV/x3klN ytDW/rpS3LDM4APPQ7MSH+Fptvjv552igbXXHk943Nfpdi5WONn4gQCaR7fa+DFKZG6z R17Iwen2e0ccFnpwdALghEOxf+F7hu4XbllrGFj/aq//b02HfKswSoYJx43mcE8Kp53q x+Hg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@c-s.fr header.s=mail header.b=uHVhUMeA; 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 z5si6291091pgu.19.2019.02.01.02.47.27; Fri, 01 Feb 2019 02:47:43 -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; dkim=pass header.i=@c-s.fr header.s=mail header.b=uHVhUMeA; 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 S1729776AbfBAKqz (ORCPT + 99 others); Fri, 1 Feb 2019 05:46:55 -0500 Received: from pegase1.c-s.fr ([93.17.236.30]:41666 "EHLO pegase1.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726428AbfBAKqz (ORCPT ); Fri, 1 Feb 2019 05:46:55 -0500 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id 43rYgw1tcYz9v0DZ; Fri, 1 Feb 2019 11:46:52 +0100 (CET) Authentication-Results: localhost; dkim=pass reason="1024-bit key; insecure key" header.d=c-s.fr header.i=@c-s.fr header.b=uHVhUMeA; dkim-adsp=pass; dkim-atps=neutral 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 P1Ae1dgdC-K7; Fri, 1 Feb 2019 11:46:52 +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 43rYgw0ljzzB09b6; Fri, 1 Feb 2019 11:46:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=c-s.fr; s=mail; t=1549018012; bh=FPms630R9DiKGp1RMqTT3ypZmIu6VHUoW+zw+eTiwOU=; h=From:Subject:To:Cc:Date:From; b=uHVhUMeAFUk2sIY3x+lxUeq/UYV7OmFPUNLpLQ0lYszlI0IM4JZdNHbcmETGQBDFa /68YnIsVbjoI5kqF0iRLbVbFBPdM+uVTjuBEtZ+yUj031oXHujShW35FU5LZOWDtGR +Uc94roksSv8atBn4UuT8wV5dQNUpKlNhmQda2rE= Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 43FEB8B84D; Fri, 1 Feb 2019 11:46:53 +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 vD7ch2aZpFRb; Fri, 1 Feb 2019 11:46:53 +0100 (CET) Received: from po16846vm.idsi0.si.c-s.fr (po15451.idsi0.si.c-s.fr [172.25.231.2]) by messagerie.si.c-s.fr (Postfix) with ESMTP id B7B9D8B75B; Fri, 1 Feb 2019 11:46:52 +0100 (CET) Received: by po16846vm.idsi0.si.c-s.fr (Postfix, from userid 0) id 8046072E2E; Fri, 1 Feb 2019 10:46:52 +0000 (UTC) Message-Id: From: Christophe Leroy Subject: [PATCH v2] powerpc: drop page_is_ram() and walk_system_ram_range() To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Cc: linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Date: Fri, 1 Feb 2019 10:46:52 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since commit c40dd2f76644 ("powerpc: Add System RAM to /proc/iomem") it is possible to use the generic walk_system_ram_range() and the generic page_is_ram(). To enable the use of walk_system_ram_range() by the IBM EHEA ethernet driver, the generic function has to be exported. As powerpc was the only (last?) user of CONFIG_ARCH_HAS_WALK_MEMORY, the #ifdef around the generic walk_system_ram_range() has become useless and can be dropped. Fixes: c40dd2f76644 ("powerpc: Add System RAM to /proc/iomem") Signed-off-by: Christophe Leroy --- arch/powerpc/Kconfig | 3 --- arch/powerpc/include/asm/page.h | 1 - arch/powerpc/mm/mem.c | 33 --------------------------------- kernel/resource.c | 5 +---- 4 files changed, 1 insertion(+), 41 deletions(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 2890d36eb531..f92e6754edf1 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -478,9 +478,6 @@ config ARCH_CPU_PROBE_RELEASE config ARCH_ENABLE_MEMORY_HOTPLUG def_bool y -config ARCH_HAS_WALK_MEMORY - def_bool y - config ARCH_ENABLE_MEMORY_HOTREMOVE def_bool y diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h index 5c5ea2413413..aa4497175bd3 100644 --- a/arch/powerpc/include/asm/page.h +++ b/arch/powerpc/include/asm/page.h @@ -326,7 +326,6 @@ struct page; extern void clear_user_page(void *page, unsigned long vaddr, struct page *pg); extern void copy_user_page(void *to, void *from, unsigned long vaddr, struct page *p); -extern int page_is_ram(unsigned long pfn); extern int devmem_is_allowed(unsigned long pfn); #ifdef CONFIG_PPC_SMLPAR diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 33cc6f676fa6..fa9916c2c662 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -80,11 +80,6 @@ static inline pte_t *virt_to_kpte(unsigned long vaddr) #define TOP_ZONE ZONE_NORMAL #endif -int page_is_ram(unsigned long pfn) -{ - return memblock_is_memory(__pfn_to_phys(pfn)); -} - pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, unsigned long size, pgprot_t vma_prot) { @@ -176,34 +171,6 @@ int __meminit arch_remove_memory(int nid, u64 start, u64 size, #endif #endif /* CONFIG_MEMORY_HOTPLUG */ -/* - * walk_memory_resource() needs to make sure there is no holes in a given - * memory range. PPC64 does not maintain the memory layout in /proc/iomem. - * Instead it maintains it in memblock.memory structures. Walk through the - * memory regions, find holes and callback for contiguous regions. - */ -int -walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, - void *arg, int (*func)(unsigned long, unsigned long, void *)) -{ - struct memblock_region *reg; - unsigned long end_pfn = start_pfn + nr_pages; - unsigned long tstart, tend; - int ret = -1; - - for_each_memblock(memory, reg) { - tstart = max(start_pfn, memblock_region_memory_base_pfn(reg)); - tend = min(end_pfn, memblock_region_memory_end_pfn(reg)); - if (tstart >= tend) - continue; - ret = (*func)(tstart, tend - tstart, arg); - if (ret) - break; - } - return ret; -} -EXPORT_SYMBOL_GPL(walk_system_ram_range); - #ifndef CONFIG_NEED_MULTIPLE_NODES void __init mem_topology_setup(void) { diff --git a/kernel/resource.c b/kernel/resource.c index 915c02e8e5dd..2e1636041508 100644 --- a/kernel/resource.c +++ b/kernel/resource.c @@ -448,8 +448,6 @@ int walk_mem_res(u64 start, u64 end, void *arg, arg, func); } -#if !defined(CONFIG_ARCH_HAS_WALK_MEMORY) - /* * This function calls the @func callback against all memory ranges of type * System RAM which are marked as IORESOURCE_SYSTEM_RAM and IORESOUCE_BUSY. @@ -480,8 +478,7 @@ int walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages, } return ret; } - -#endif +EXPORT_SYMBOL_GPL(walk_system_ram_range); static int __is_ram(unsigned long pfn, unsigned long nr_pages, void *arg) { -- 2.13.3