Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Suchanek <msuchanek@suse.de>2019-10-03 20:00:39 +0200
committerMichal Suchanek <msuchanek@suse.de>2019-10-03 20:01:03 +0200
commite7fd1fe058f18a4d9dbf3896fedbbf40c3c849cb (patch)
treeb175761d416c2ebf4aa8b96200a7a1d4cb3a6a47
parent728a19352c2fa7330dd049f0a9f726c8183f2c93 (diff)
powerpc: Drop page_is_ram() and walk_system_ram_range()
(bsc#1065729).
-rw-r--r--patches.suse/powerpc-Drop-page_is_ram-and-walk_system_ram_range.patch142
-rw-r--r--series.conf1
2 files changed, 143 insertions, 0 deletions
diff --git a/patches.suse/powerpc-Drop-page_is_ram-and-walk_system_ram_range.patch b/patches.suse/powerpc-Drop-page_is_ram-and-walk_system_ram_range.patch
new file mode 100644
index 0000000000..b5de4848f4
--- /dev/null
+++ b/patches.suse/powerpc-Drop-page_is_ram-and-walk_system_ram_range.patch
@@ -0,0 +1,142 @@
+From 26b523356f49a0117c8f9e32ca98aa6d6e496e1a Mon Sep 17 00:00:00 2001
+From: Christophe Leroy <christophe.leroy@c-s.fr>
+Date: Fri, 1 Feb 2019 10:46:52 +0000
+Subject: [PATCH] powerpc: Drop page_is_ram() and walk_system_ram_range()
+
+References: bsc#1065729
+Patch-mainline: v5.1-rc1
+Git-commit: 26b523356f49a0117c8f9e32ca98aa6d6e496e1a
+
+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, we still need an export of the generic function.
+
+As powerpc was the only 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 <christophe.leroy@c-s.fr>
+[mpe: Keep the EXPORT_SYMBOL_GPL in powerpc code]
+Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
+Acked-by: Michal Suchanek <msuchanek@suse.de>
+---
+ arch/powerpc/Kconfig | 3 ---
+ arch/powerpc/include/asm/page.h | 1 -
+ arch/powerpc/mm/mem.c | 39 +++++----------------------------
+ kernel/resource.c | 4 ----
+ 4 files changed, 6 insertions(+), 41 deletions(-)
+
+diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
+index 9c70c2864657..08908219fba9 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
+--- 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)
+ {
+@@ -166,34 +161,6 @@ int arch_remove_memory(u64 start, u64 si
+ #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 initmem_init(void)
+ {
+@@ -581,3 +548,9 @@ int devmem_is_allowed(unsigned long pfn)
+ return 0;
+ }
+ #endif /* CONFIG_STRICT_DEVMEM */
++
++/*
++ * This is defined in kernel/resource.c but only powerpc needs to export it, for
++ * the EHEA driver. Drop this when drivers/net/ethernet/ibm/ehea is removed.
++ */
++EXPORT_SYMBOL_GPL(walk_system_ram_range);
+diff --git a/kernel/resource.c b/kernel/resource.c
+index 915c02e8e5dd..e81b17b53fa5 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.
+@@ -481,8 +479,6 @@ int walk_system_ram_range(unsigned long start_pfn, unsigned long nr_pages,
+ return ret;
+ }
+
+-#endif
+-
+ static int __is_ram(unsigned long pfn, unsigned long nr_pages, void *arg)
+ {
+ return 1;
+--
+2.23.0
+
diff --git a/series.conf b/series.conf
index a89d59f416..0e3bdbde4d 100644
--- a/series.conf
+++ b/series.conf
@@ -22197,6 +22197,7 @@
patches.suse/powerpc-64s-clear-on-stack-exception-marker-upon-exception-return.patch
patches.suse/powerpc-livepatch-relax-reliable-stack-tracer-checks-for-first-frame.patch
patches.suse/powerpc-livepatch-small-cleanups-in-save_stack_trace_tsk_reliable.patch
+ patches.suse/powerpc-Drop-page_is_ram-and-walk_system_ram_range.patch
patches.suse/powerpc-ptrace-Simplify-vr_get-set-to-avoid-GCC-warn.patch
patches.suse/powerpc-pseries-export-timebase-register-sample-in-l.patch
patches.suse/powerpc-Fix-32-bit-KVM-PR-lockup-and-host-crash-with.patch