.. | .. |
---|
11 | 11 | #include <linux/kvm_host.h> |
---|
12 | 12 | #include <linux/sched.h> |
---|
13 | 13 | #include <linux/purgatory.h> |
---|
| 14 | +#include <linux/pgtable.h> |
---|
14 | 15 | #include <asm/idle.h> |
---|
15 | 16 | #include <asm/vdso.h> |
---|
16 | | -#include <asm/pgtable.h> |
---|
17 | 17 | #include <asm/gmap.h> |
---|
18 | 18 | #include <asm/nmi.h> |
---|
| 19 | +#include <asm/stacktrace.h> |
---|
19 | 20 | |
---|
20 | 21 | int main(void) |
---|
21 | 22 | { |
---|
.. | .. |
---|
52 | 53 | /* stack_frame offsets */ |
---|
53 | 54 | OFFSET(__SF_BACKCHAIN, stack_frame, back_chain); |
---|
54 | 55 | OFFSET(__SF_GPRS, stack_frame, gprs); |
---|
55 | | - OFFSET(__SF_EMPTY, stack_frame, empty1); |
---|
56 | | - OFFSET(__SF_SIE_CONTROL, stack_frame, empty1[0]); |
---|
57 | | - OFFSET(__SF_SIE_SAVEAREA, stack_frame, empty1[1]); |
---|
58 | | - OFFSET(__SF_SIE_REASON, stack_frame, empty1[2]); |
---|
59 | | - OFFSET(__SF_SIE_FLAGS, stack_frame, empty1[3]); |
---|
| 56 | + OFFSET(__SF_EMPTY, stack_frame, empty1[0]); |
---|
| 57 | + OFFSET(__SF_SIE_CONTROL, stack_frame, empty1[1]); |
---|
| 58 | + OFFSET(__SF_SIE_SAVEAREA, stack_frame, empty1[2]); |
---|
| 59 | + OFFSET(__SF_SIE_REASON, stack_frame, empty1[3]); |
---|
| 60 | + OFFSET(__SF_SIE_FLAGS, stack_frame, empty1[4]); |
---|
60 | 61 | BLANK(); |
---|
61 | | - /* timeval/timezone offsets for use by vdso */ |
---|
62 | | - OFFSET(__VDSO_UPD_COUNT, vdso_data, tb_update_count); |
---|
63 | | - OFFSET(__VDSO_XTIME_STAMP, vdso_data, xtime_tod_stamp); |
---|
64 | | - OFFSET(__VDSO_XTIME_SEC, vdso_data, xtime_clock_sec); |
---|
65 | | - OFFSET(__VDSO_XTIME_NSEC, vdso_data, xtime_clock_nsec); |
---|
66 | | - OFFSET(__VDSO_XTIME_CRS_SEC, vdso_data, xtime_coarse_sec); |
---|
67 | | - OFFSET(__VDSO_XTIME_CRS_NSEC, vdso_data, xtime_coarse_nsec); |
---|
68 | | - OFFSET(__VDSO_WTOM_SEC, vdso_data, wtom_clock_sec); |
---|
69 | | - OFFSET(__VDSO_WTOM_NSEC, vdso_data, wtom_clock_nsec); |
---|
70 | | - OFFSET(__VDSO_WTOM_CRS_SEC, vdso_data, wtom_coarse_sec); |
---|
71 | | - OFFSET(__VDSO_WTOM_CRS_NSEC, vdso_data, wtom_coarse_nsec); |
---|
72 | | - OFFSET(__VDSO_TIMEZONE, vdso_data, tz_minuteswest); |
---|
73 | | - OFFSET(__VDSO_ECTG_OK, vdso_data, ectg_available); |
---|
74 | | - OFFSET(__VDSO_TK_MULT, vdso_data, tk_mult); |
---|
75 | | - OFFSET(__VDSO_TK_SHIFT, vdso_data, tk_shift); |
---|
76 | | - OFFSET(__VDSO_TS_DIR, vdso_data, ts_dir); |
---|
77 | | - OFFSET(__VDSO_TS_END, vdso_data, ts_end); |
---|
78 | | - OFFSET(__VDSO_CLOCK_REALTIME_RES, vdso_data, hrtimer_res); |
---|
79 | | - OFFSET(__VDSO_ECTG_BASE, vdso_per_cpu_data, ectg_timer_base); |
---|
80 | | - OFFSET(__VDSO_ECTG_USER, vdso_per_cpu_data, ectg_user_time); |
---|
81 | | - OFFSET(__VDSO_CPU_NR, vdso_per_cpu_data, cpu_nr); |
---|
82 | | - OFFSET(__VDSO_NODE_ID, vdso_per_cpu_data, node_id); |
---|
83 | | - BLANK(); |
---|
84 | | - /* constants used by the vdso */ |
---|
85 | | - DEFINE(__CLOCK_REALTIME, CLOCK_REALTIME); |
---|
86 | | - DEFINE(__CLOCK_MONOTONIC, CLOCK_MONOTONIC); |
---|
87 | | - DEFINE(__CLOCK_REALTIME_COARSE, CLOCK_REALTIME_COARSE); |
---|
88 | | - DEFINE(__CLOCK_MONOTONIC_COARSE, CLOCK_MONOTONIC_COARSE); |
---|
89 | | - DEFINE(__CLOCK_THREAD_CPUTIME_ID, CLOCK_THREAD_CPUTIME_ID); |
---|
90 | | - DEFINE(__CLOCK_COARSE_RES, LOW_RES_NSEC); |
---|
| 62 | + OFFSET(__VDSO_GETCPU_VAL, vdso_per_cpu_data, getcpu_val); |
---|
91 | 63 | BLANK(); |
---|
92 | 64 | /* idle data offsets */ |
---|
93 | 65 | OFFSET(__CLOCK_IDLE_ENTER, s390_idle_data, clock_idle_enter); |
---|
.. | .. |
---|
124 | 96 | OFFSET(__LC_EXT_DAMAGE_CODE, lowcore, external_damage_code); |
---|
125 | 97 | OFFSET(__LC_MCCK_FAIL_STOR_ADDR, lowcore, failing_storage_address); |
---|
126 | 98 | OFFSET(__LC_LAST_BREAK, lowcore, breaking_event_addr); |
---|
| 99 | + OFFSET(__LC_RETURN_LPSWE, lowcore, return_lpswe); |
---|
| 100 | + OFFSET(__LC_RETURN_MCCK_LPSWE, lowcore, return_mcck_lpswe); |
---|
127 | 101 | OFFSET(__LC_RST_OLD_PSW, lowcore, restart_old_psw); |
---|
128 | 102 | OFFSET(__LC_EXT_OLD_PSW, lowcore, external_old_psw); |
---|
129 | 103 | OFFSET(__LC_SVC_OLD_PSW, lowcore, svc_old_psw); |
---|
.. | .. |
---|
159 | 133 | OFFSET(__LC_CURRENT, lowcore, current_task); |
---|
160 | 134 | OFFSET(__LC_KERNEL_STACK, lowcore, kernel_stack); |
---|
161 | 135 | OFFSET(__LC_ASYNC_STACK, lowcore, async_stack); |
---|
162 | | - OFFSET(__LC_PANIC_STACK, lowcore, panic_stack); |
---|
| 136 | + OFFSET(__LC_NODAT_STACK, lowcore, nodat_stack); |
---|
163 | 137 | OFFSET(__LC_RESTART_STACK, lowcore, restart_stack); |
---|
164 | 138 | OFFSET(__LC_RESTART_FN, lowcore, restart_fn); |
---|
165 | 139 | OFFSET(__LC_RESTART_DATA, lowcore, restart_data); |
---|
.. | .. |
---|
176 | 150 | OFFSET(__LC_BR_R1, lowcore, br_r1_trampoline); |
---|
177 | 151 | /* software defined ABI-relevant lowcore locations 0xe00 - 0xe20 */ |
---|
178 | 152 | OFFSET(__LC_DUMP_REIPL, lowcore, ipib); |
---|
| 153 | + OFFSET(__LC_VMCORE_INFO, lowcore, vmcore_info); |
---|
| 154 | + OFFSET(__LC_OS_INFO, lowcore, os_info); |
---|
179 | 155 | /* hardware defined lowcore locations 0x1000 - 0x18ff */ |
---|
180 | 156 | OFFSET(__LC_MCESAD, lowcore, mcesad); |
---|
181 | 157 | OFFSET(__LC_EXT_PARAMS2, lowcore, ext_params2); |
---|