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 ---