early.c (bd072111e7319d90a7b8127f91c2806b9a6f279e) | early.c (5f954c3426190f7ae432a09abd62164d5d14c709) |
---|---|
1/* 2 * arch/s390/kernel/early.c 3 * 4 * Copyright IBM Corp. 2007, 2009 5 * Author(s): Hongjie Yang <hongjie@us.ibm.com>, 6 * Heiko Carstens <heiko.carstens@de.ibm.com> 7 */ 8 --- 196 unchanged lines hidden (view full) --- 205 206 /* Running under KVM? If not we assume z/VM */ 207 if (!memcmp(vmms.vm[0].cpi, "\xd2\xe5\xd4", 3)) 208 machine_flags |= MACHINE_FLAG_KVM; 209 else 210 machine_flags |= MACHINE_FLAG_VM; 211} 212 | 1/* 2 * arch/s390/kernel/early.c 3 * 4 * Copyright IBM Corp. 2007, 2009 5 * Author(s): Hongjie Yang <hongjie@us.ibm.com>, 6 * Heiko Carstens <heiko.carstens@de.ibm.com> 7 */ 8 --- 196 unchanged lines hidden (view full) --- 205 206 /* Running under KVM? If not we assume z/VM */ 207 if (!memcmp(vmms.vm[0].cpi, "\xd2\xe5\xd4", 3)) 208 machine_flags |= MACHINE_FLAG_KVM; 209 else 210 machine_flags |= MACHINE_FLAG_VM; 211} 212 |
213static void early_pgm_check_handler(void) | 213static __init void early_pgm_check_handler(void) |
214{ 215 unsigned long addr; 216 const struct exception_table_entry *fixup; 217 218 addr = S390_lowcore.program_old_psw.addr; 219 fixup = search_exception_tables(addr & PSW_ADDR_INSN); 220 if (!fixup) 221 disabled_wait(0); 222 S390_lowcore.program_old_psw.addr = fixup->fixup | PSW_ADDR_AMODE; 223} 224 | 214{ 215 unsigned long addr; 216 const struct exception_table_entry *fixup; 217 218 addr = S390_lowcore.program_old_psw.addr; 219 fixup = search_exception_tables(addr & PSW_ADDR_INSN); 220 if (!fixup) 221 disabled_wait(0); 222 S390_lowcore.program_old_psw.addr = fixup->fixup | PSW_ADDR_AMODE; 223} 224 |
225void setup_lowcore_early(void) | 225static noinline __init void setup_lowcore_early(void) |
226{ 227 psw_t psw; 228 229 psw.mask = PSW_BASE_BITS | PSW_DEFAULT_KEY; 230 psw.addr = PSW_ADDR_AMODE | (unsigned long) s390_base_ext_handler; 231 S390_lowcore.external_new_psw = psw; 232 psw.addr = PSW_ADDR_AMODE | (unsigned long) s390_base_pgm_handler; 233 S390_lowcore.program_new_psw = psw; --- 185 unchanged lines hidden --- | 226{ 227 psw_t psw; 228 229 psw.mask = PSW_BASE_BITS | PSW_DEFAULT_KEY; 230 psw.addr = PSW_ADDR_AMODE | (unsigned long) s390_base_ext_handler; 231 S390_lowcore.external_new_psw = psw; 232 psw.addr = PSW_ADDR_AMODE | (unsigned long) s390_base_pgm_handler; 233 S390_lowcore.program_new_psw = psw; --- 185 unchanged lines hidden --- |