aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/early.c
diff options
context:
space:
mode:
authorPhilipp Hachtmann <phacht@linux.vnet.ibm.com>2014-01-29 12:16:01 -0500
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-05-20 02:58:40 -0400
commit50be634507284eea38df78154d22615d21200b42 (patch)
tree427a1302d043bb64b5d4d01c0459f7b4a2282110 /arch/s390/kernel/early.c
parent70210ed950b538ee7eb811dccc402db9df1c9be4 (diff)
s390/mm: Convert bootmem to memblock
The original bootmem allocator is getting replaced by memblock. To cover the needs of the s390 kdump implementation the physical memory list is used. With this patch the bootmem allocator and its bitmaps are completely removed from s390. Signed-off-by: Philipp Hachtmann <phacht@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/early.c')
-rw-r--r--arch/s390/kernel/early.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index a734f3585ceb..0dff972a169c 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -258,13 +258,19 @@ static __init void setup_topology(void)
258static void early_pgm_check_handler(void) 258static void early_pgm_check_handler(void)
259{ 259{
260 const struct exception_table_entry *fixup; 260 const struct exception_table_entry *fixup;
261 unsigned long cr0, cr0_new;
261 unsigned long addr; 262 unsigned long addr;
262 263
263 addr = S390_lowcore.program_old_psw.addr; 264 addr = S390_lowcore.program_old_psw.addr;
264 fixup = search_exception_tables(addr & PSW_ADDR_INSN); 265 fixup = search_exception_tables(addr & PSW_ADDR_INSN);
265 if (!fixup) 266 if (!fixup)
266 disabled_wait(0); 267 disabled_wait(0);
268 /* Disable low address protection before storing into lowcore. */
269 __ctl_store(cr0, 0, 0);
270 cr0_new = cr0 & ~(1UL << 28);
271 __ctl_load(cr0_new, 0, 0);
267 S390_lowcore.program_old_psw.addr = extable_fixup(fixup)|PSW_ADDR_AMODE; 272 S390_lowcore.program_old_psw.addr = extable_fixup(fixup)|PSW_ADDR_AMODE;
273 __ctl_load(cr0, 0, 0);
268} 274}
269 275
270static noinline __init void setup_lowcore_early(void) 276static noinline __init void setup_lowcore_early(void)