aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristophe Leroy <christophe.leroy@c-s.fr>2019-03-12 02:29:00 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2019-03-12 13:04:01 -0400
commit1269f7b83f2cf79c2dce3b7658df38e51fd4b0ab (patch)
tree77cdffb7ae22c3b8adfe94a63ad3089c054defcd
parentfb054d0d91dbe3c67c25c68cf17bf7e0b7214ca7 (diff)
powerpc: use memblock functions returning virtual address
Since only the virtual address of allocated blocks is used, lets use functions returning directly virtual address. Those functions have the advantage of also zeroing the block. [rppt@linux.ibm.com: powerpc: remove duplicated alloc_stack() function] Link: http://lkml.kernel.org/r/20190226064032.GA5873@rapoport-lnx [rppt@linux.ibm.com: updated error message in alloc_stack() to be more verbose] [rppt@linux.ibm.com: convereted several additional call sites ] Link: http://lkml.kernel.org/r/1548057848-15136-3-git-send-email-rppt@linux.ibm.com Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Mike Rapoport <rppt@linux.ibm.com> Acked-by: Michael Ellerman <mpe@ellerman.id.au> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Christoph Hellwig <hch@lst.de> Cc: "David S. Miller" <davem@davemloft.net> Cc: Dennis Zhou <dennis@kernel.org> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: Greentime Hu <green.hu@gmail.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Guan Xuetao <gxt@pku.edu.cn> Cc: Guo Ren <guoren@kernel.org> Cc: Guo Ren <ren_guo@c-sky.com> [c-sky] Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Juergen Gross <jgross@suse.com> [Xen] Cc: Mark Salter <msalter@redhat.com> Cc: Matt Turner <mattst88@gmail.com> Cc: Max Filippov <jcmvbkbc@gmail.com> Cc: Michal Simek <monstr@monstr.eu> Cc: Paul Burton <paul.burton@mips.com> Cc: Petr Mladek <pmladek@suse.com> Cc: Richard Weinberger <richard@nod.at> Cc: Rich Felker <dalias@libc.org> Cc: Rob Herring <robh+dt@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: Russell King <linux@armlinux.org.uk> Cc: Stafford Horne <shorne@gmail.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/powerpc/kernel/dt_cpu_ftrs.c3
-rw-r--r--arch/powerpc/kernel/paca.c6
-rw-r--r--arch/powerpc/kernel/prom.c5
3 files changed, 10 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c b/arch/powerpc/kernel/dt_cpu_ftrs.c
index e49bd5efcfe6..28c076c771de 100644
--- a/arch/powerpc/kernel/dt_cpu_ftrs.c
+++ b/arch/powerpc/kernel/dt_cpu_ftrs.c
@@ -810,7 +810,6 @@ static int __init process_cpufeatures_node(unsigned long node,
810 int len; 810 int len;
811 811
812 f = &dt_cpu_features[i]; 812 f = &dt_cpu_features[i];
813 memset(f, 0, sizeof(struct dt_cpu_feature));
814 813
815 f->node = node; 814 f->node = node;
816 815
@@ -1005,7 +1004,7 @@ static int __init dt_cpu_ftrs_scan_callback(unsigned long node, const char
1005 /* Count and allocate space for cpu features */ 1004 /* Count and allocate space for cpu features */
1006 of_scan_flat_dt_subnodes(node, count_cpufeatures_subnodes, 1005 of_scan_flat_dt_subnodes(node, count_cpufeatures_subnodes,
1007 &nr_dt_cpu_features); 1006 &nr_dt_cpu_features);
1008 dt_cpu_features = __va(memblock_phys_alloc(sizeof(struct dt_cpu_feature) * nr_dt_cpu_features, PAGE_SIZE)); 1007 dt_cpu_features = memblock_alloc(sizeof(struct dt_cpu_feature) * nr_dt_cpu_features, PAGE_SIZE);
1009 1008
1010 cpufeatures_setup_start(isa); 1009 cpufeatures_setup_start(isa);
1011 1010
diff --git a/arch/powerpc/kernel/paca.c b/arch/powerpc/kernel/paca.c
index 8c890c6557ed..e7382abee868 100644
--- a/arch/powerpc/kernel/paca.c
+++ b/arch/powerpc/kernel/paca.c
@@ -196,7 +196,11 @@ void __init allocate_paca_ptrs(void)
196 paca_nr_cpu_ids = nr_cpu_ids; 196 paca_nr_cpu_ids = nr_cpu_ids;
197 197
198 paca_ptrs_size = sizeof(struct paca_struct *) * nr_cpu_ids; 198 paca_ptrs_size = sizeof(struct paca_struct *) * nr_cpu_ids;
199 paca_ptrs = __va(memblock_phys_alloc(paca_ptrs_size, SMP_CACHE_BYTES)); 199 paca_ptrs = memblock_alloc_raw(paca_ptrs_size, SMP_CACHE_BYTES);
200 if (!paca_ptrs)
201 panic("Failed to allocate %d bytes for paca pointers\n",
202 paca_ptrs_size);
203
200 memset(paca_ptrs, 0x88, paca_ptrs_size); 204 memset(paca_ptrs, 0x88, paca_ptrs_size);
201} 205}
202 206
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 4181ec715f88..4221527b082f 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -126,7 +126,10 @@ static void __init move_device_tree(void)
126 if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) || 126 if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) ||
127 !memblock_is_memory(start + size - 1) || 127 !memblock_is_memory(start + size - 1) ||
128 overlaps_crashkernel(start, size) || overlaps_initrd(start, size)) { 128 overlaps_crashkernel(start, size) || overlaps_initrd(start, size)) {
129 p = __va(memblock_phys_alloc(size, PAGE_SIZE)); 129 p = memblock_alloc_raw(size, PAGE_SIZE);
130 if (!p)
131 panic("Failed to allocate %lu bytes to move device tree\n",
132 size);
130 memcpy(p, initial_boot_params, size); 133 memcpy(p, initial_boot_params, size);
131 initial_boot_params = p; 134 initial_boot_params = p;
132 DBG("Moved device tree to 0x%px\n", p); 135 DBG("Moved device tree to 0x%px\n", p);