mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
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>
This commit is contained in:
parent
fb054d0d91
commit
1269f7b83f
@ -810,7 +810,6 @@ static int __init process_cpufeatures_node(unsigned long node,
|
|||||||
int len;
|
int len;
|
||||||
|
|
||||||
f = &dt_cpu_features[i];
|
f = &dt_cpu_features[i];
|
||||||
memset(f, 0, sizeof(struct dt_cpu_feature));
|
|
||||||
|
|
||||||
f->node = node;
|
f->node = node;
|
||||||
|
|
||||||
@ -1005,7 +1004,7 @@ static int __init dt_cpu_ftrs_scan_callback(unsigned long node, const char
|
|||||||
/* Count and allocate space for cpu features */
|
/* Count and allocate space for cpu features */
|
||||||
of_scan_flat_dt_subnodes(node, count_cpufeatures_subnodes,
|
of_scan_flat_dt_subnodes(node, count_cpufeatures_subnodes,
|
||||||
&nr_dt_cpu_features);
|
&nr_dt_cpu_features);
|
||||||
dt_cpu_features = __va(memblock_phys_alloc(sizeof(struct dt_cpu_feature) * nr_dt_cpu_features, PAGE_SIZE));
|
dt_cpu_features = memblock_alloc(sizeof(struct dt_cpu_feature) * nr_dt_cpu_features, PAGE_SIZE);
|
||||||
|
|
||||||
cpufeatures_setup_start(isa);
|
cpufeatures_setup_start(isa);
|
||||||
|
|
||||||
|
@ -196,7 +196,11 @@ void __init allocate_paca_ptrs(void)
|
|||||||
paca_nr_cpu_ids = nr_cpu_ids;
|
paca_nr_cpu_ids = nr_cpu_ids;
|
||||||
|
|
||||||
paca_ptrs_size = sizeof(struct paca_struct *) * nr_cpu_ids;
|
paca_ptrs_size = sizeof(struct paca_struct *) * nr_cpu_ids;
|
||||||
paca_ptrs = __va(memblock_phys_alloc(paca_ptrs_size, SMP_CACHE_BYTES));
|
paca_ptrs = memblock_alloc_raw(paca_ptrs_size, SMP_CACHE_BYTES);
|
||||||
|
if (!paca_ptrs)
|
||||||
|
panic("Failed to allocate %d bytes for paca pointers\n",
|
||||||
|
paca_ptrs_size);
|
||||||
|
|
||||||
memset(paca_ptrs, 0x88, paca_ptrs_size);
|
memset(paca_ptrs, 0x88, paca_ptrs_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -126,7 +126,10 @@ static void __init move_device_tree(void)
|
|||||||
if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) ||
|
if ((memory_limit && (start + size) > PHYSICAL_START + memory_limit) ||
|
||||||
!memblock_is_memory(start + size - 1) ||
|
!memblock_is_memory(start + size - 1) ||
|
||||||
overlaps_crashkernel(start, size) || overlaps_initrd(start, size)) {
|
overlaps_crashkernel(start, size) || overlaps_initrd(start, size)) {
|
||||||
p = __va(memblock_phys_alloc(size, PAGE_SIZE));
|
p = memblock_alloc_raw(size, PAGE_SIZE);
|
||||||
|
if (!p)
|
||||||
|
panic("Failed to allocate %lu bytes to move device tree\n",
|
||||||
|
size);
|
||||||
memcpy(p, initial_boot_params, size);
|
memcpy(p, initial_boot_params, size);
|
||||||
initial_boot_params = p;
|
initial_boot_params = p;
|
||||||
DBG("Moved device tree to 0x%px\n", p);
|
DBG("Moved device tree to 0x%px\n", p);
|
||||||
|
Loading…
Reference in New Issue
Block a user