diff options
Diffstat (limited to 'arch/s390/include')
-rw-r--r-- | arch/s390/include/asm/cputime.h | 9 | ||||
-rw-r--r-- | arch/s390/include/asm/lowcore.h | 89 | ||||
-rw-r--r-- | arch/s390/include/asm/ptrace.h | 3 | ||||
-rw-r--r-- | arch/s390/include/asm/qdio.h | 2 | ||||
-rw-r--r-- | arch/s390/include/asm/setup.h | 5 | ||||
-rw-r--r-- | arch/s390/include/asm/system.h | 5 | ||||
-rw-r--r-- | arch/s390/include/asm/thread_info.h | 3 | ||||
-rw-r--r-- | arch/s390/include/asm/timex.h | 8 | ||||
-rw-r--r-- | arch/s390/include/asm/topology.h | 2 |
9 files changed, 67 insertions, 59 deletions
diff --git a/arch/s390/include/asm/cputime.h b/arch/s390/include/asm/cputime.h index 258ba88b7b5..8b1a52a137c 100644 --- a/arch/s390/include/asm/cputime.h +++ b/arch/s390/include/asm/cputime.h | |||
@@ -188,15 +188,16 @@ struct s390_idle_data { | |||
188 | 188 | ||
189 | DECLARE_PER_CPU(struct s390_idle_data, s390_idle); | 189 | DECLARE_PER_CPU(struct s390_idle_data, s390_idle); |
190 | 190 | ||
191 | void vtime_start_cpu(void); | 191 | void vtime_start_cpu(__u64 int_clock, __u64 enter_timer); |
192 | cputime64_t s390_get_idle_time(int cpu); | 192 | cputime64_t s390_get_idle_time(int cpu); |
193 | 193 | ||
194 | #define arch_idle_time(cpu) s390_get_idle_time(cpu) | 194 | #define arch_idle_time(cpu) s390_get_idle_time(cpu) |
195 | 195 | ||
196 | static inline void s390_idle_check(void) | 196 | static inline void s390_idle_check(struct pt_regs *regs, __u64 int_clock, |
197 | __u64 enter_timer) | ||
197 | { | 198 | { |
198 | if ((&__get_cpu_var(s390_idle))->idle_enter != 0ULL) | 199 | if (regs->psw.mask & PSW_MASK_WAIT) |
199 | vtime_start_cpu(); | 200 | vtime_start_cpu(int_clock, enter_timer); |
200 | } | 201 | } |
201 | 202 | ||
202 | static inline int s390_nohz_delay(int cpu) | 203 | static inline int s390_nohz_delay(int cpu) |
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h index 05527c040b7..0f97ef2d92a 100644 --- a/arch/s390/include/asm/lowcore.h +++ b/arch/s390/include/asm/lowcore.h | |||
@@ -104,38 +104,39 @@ struct _lowcore { | |||
104 | /* CPU time accounting values */ | 104 | /* CPU time accounting values */ |
105 | __u64 sync_enter_timer; /* 0x0250 */ | 105 | __u64 sync_enter_timer; /* 0x0250 */ |
106 | __u64 async_enter_timer; /* 0x0258 */ | 106 | __u64 async_enter_timer; /* 0x0258 */ |
107 | __u64 exit_timer; /* 0x0260 */ | 107 | __u64 mcck_enter_timer; /* 0x0260 */ |
108 | __u64 user_timer; /* 0x0268 */ | 108 | __u64 exit_timer; /* 0x0268 */ |
109 | __u64 system_timer; /* 0x0270 */ | 109 | __u64 user_timer; /* 0x0270 */ |
110 | __u64 steal_timer; /* 0x0278 */ | 110 | __u64 system_timer; /* 0x0278 */ |
111 | __u64 last_update_timer; /* 0x0280 */ | 111 | __u64 steal_timer; /* 0x0280 */ |
112 | __u64 last_update_clock; /* 0x0288 */ | 112 | __u64 last_update_timer; /* 0x0288 */ |
113 | __u64 last_update_clock; /* 0x0290 */ | ||
113 | 114 | ||
114 | /* Current process. */ | 115 | /* Current process. */ |
115 | __u32 current_task; /* 0x0290 */ | 116 | __u32 current_task; /* 0x0298 */ |
116 | __u32 thread_info; /* 0x0294 */ | 117 | __u32 thread_info; /* 0x029c */ |
117 | __u32 kernel_stack; /* 0x0298 */ | 118 | __u32 kernel_stack; /* 0x02a0 */ |
118 | 119 | ||
119 | /* Interrupt and panic stack. */ | 120 | /* Interrupt and panic stack. */ |
120 | __u32 async_stack; /* 0x029c */ | 121 | __u32 async_stack; /* 0x02a4 */ |
121 | __u32 panic_stack; /* 0x02a0 */ | 122 | __u32 panic_stack; /* 0x02a8 */ |
122 | 123 | ||
123 | /* Address space pointer. */ | 124 | /* Address space pointer. */ |
124 | __u32 kernel_asce; /* 0x02a4 */ | 125 | __u32 kernel_asce; /* 0x02ac */ |
125 | __u32 user_asce; /* 0x02a8 */ | 126 | __u32 user_asce; /* 0x02b0 */ |
126 | __u32 user_exec_asce; /* 0x02ac */ | 127 | __u32 user_exec_asce; /* 0x02b4 */ |
127 | 128 | ||
128 | /* SMP info area */ | 129 | /* SMP info area */ |
129 | struct cpuid cpu_id; /* 0x02b0 */ | ||
130 | __u32 cpu_nr; /* 0x02b8 */ | 130 | __u32 cpu_nr; /* 0x02b8 */ |
131 | __u32 softirq_pending; /* 0x02bc */ | 131 | __u32 softirq_pending; /* 0x02bc */ |
132 | __u32 percpu_offset; /* 0x02c0 */ | 132 | __u32 percpu_offset; /* 0x02c0 */ |
133 | __u32 ext_call_fast; /* 0x02c4 */ | 133 | __u32 ext_call_fast; /* 0x02c4 */ |
134 | __u64 int_clock; /* 0x02c8 */ | 134 | __u64 int_clock; /* 0x02c8 */ |
135 | __u64 clock_comparator; /* 0x02d0 */ | 135 | __u64 mcck_clock; /* 0x02d0 */ |
136 | __u32 machine_flags; /* 0x02d8 */ | 136 | __u64 clock_comparator; /* 0x02d8 */ |
137 | __u32 ftrace_func; /* 0x02dc */ | 137 | __u32 machine_flags; /* 0x02e0 */ |
138 | __u8 pad_0x02e0[0x0300-0x02e0]; /* 0x02e0 */ | 138 | __u32 ftrace_func; /* 0x02e4 */ |
139 | __u8 pad_0x02e8[0x0300-0x02e8]; /* 0x02e8 */ | ||
139 | 140 | ||
140 | /* Interrupt response block */ | 141 | /* Interrupt response block */ |
141 | __u8 irb[64]; /* 0x0300 */ | 142 | __u8 irb[64]; /* 0x0300 */ |
@@ -189,14 +190,14 @@ struct _lowcore { | |||
189 | __u32 data_exc_code; /* 0x0090 */ | 190 | __u32 data_exc_code; /* 0x0090 */ |
190 | __u16 mon_class_num; /* 0x0094 */ | 191 | __u16 mon_class_num; /* 0x0094 */ |
191 | __u16 per_perc_atmid; /* 0x0096 */ | 192 | __u16 per_perc_atmid; /* 0x0096 */ |
192 | addr_t per_address; /* 0x0098 */ | 193 | __u64 per_address; /* 0x0098 */ |
193 | __u8 exc_access_id; /* 0x00a0 */ | 194 | __u8 exc_access_id; /* 0x00a0 */ |
194 | __u8 per_access_id; /* 0x00a1 */ | 195 | __u8 per_access_id; /* 0x00a1 */ |
195 | __u8 op_access_id; /* 0x00a2 */ | 196 | __u8 op_access_id; /* 0x00a2 */ |
196 | __u8 ar_access_id; /* 0x00a3 */ | 197 | __u8 ar_access_id; /* 0x00a3 */ |
197 | __u8 pad_0x00a4[0x00a8-0x00a4]; /* 0x00a4 */ | 198 | __u8 pad_0x00a4[0x00a8-0x00a4]; /* 0x00a4 */ |
198 | addr_t trans_exc_code; /* 0x00a8 */ | 199 | __u64 trans_exc_code; /* 0x00a8 */ |
199 | addr_t monitor_code; /* 0x00b0 */ | 200 | __u64 monitor_code; /* 0x00b0 */ |
200 | __u16 subchannel_id; /* 0x00b8 */ | 201 | __u16 subchannel_id; /* 0x00b8 */ |
201 | __u16 subchannel_nr; /* 0x00ba */ | 202 | __u16 subchannel_nr; /* 0x00ba */ |
202 | __u32 io_int_parm; /* 0x00bc */ | 203 | __u32 io_int_parm; /* 0x00bc */ |
@@ -207,7 +208,7 @@ struct _lowcore { | |||
207 | __u32 mcck_interruption_code[2]; /* 0x00e8 */ | 208 | __u32 mcck_interruption_code[2]; /* 0x00e8 */ |
208 | __u8 pad_0x00f0[0x00f4-0x00f0]; /* 0x00f0 */ | 209 | __u8 pad_0x00f0[0x00f4-0x00f0]; /* 0x00f0 */ |
209 | __u32 external_damage_code; /* 0x00f4 */ | 210 | __u32 external_damage_code; /* 0x00f4 */ |
210 | addr_t failing_storage_address; /* 0x00f8 */ | 211 | __u64 failing_storage_address; /* 0x00f8 */ |
211 | __u8 pad_0x0100[0x0110-0x0100]; /* 0x0100 */ | 212 | __u8 pad_0x0100[0x0110-0x0100]; /* 0x0100 */ |
212 | __u64 breaking_event_addr; /* 0x0110 */ | 213 | __u64 breaking_event_addr; /* 0x0110 */ |
213 | __u8 pad_0x0118[0x0120-0x0118]; /* 0x0118 */ | 214 | __u8 pad_0x0118[0x0120-0x0118]; /* 0x0118 */ |
@@ -233,39 +234,41 @@ struct _lowcore { | |||
233 | /* CPU accounting and timing values. */ | 234 | /* CPU accounting and timing values. */ |
234 | __u64 sync_enter_timer; /* 0x02a0 */ | 235 | __u64 sync_enter_timer; /* 0x02a0 */ |
235 | __u64 async_enter_timer; /* 0x02a8 */ | 236 | __u64 async_enter_timer; /* 0x02a8 */ |
236 | __u64 exit_timer; /* 0x02b0 */ | 237 | __u64 mcck_enter_timer; /* 0x02b0 */ |
237 | __u64 user_timer; /* 0x02b8 */ | 238 | __u64 exit_timer; /* 0x02b8 */ |
238 | __u64 system_timer; /* 0x02c0 */ | 239 | __u64 user_timer; /* 0x02c0 */ |
239 | __u64 steal_timer; /* 0x02c8 */ | 240 | __u64 system_timer; /* 0x02c8 */ |
240 | __u64 last_update_timer; /* 0x02d0 */ | 241 | __u64 steal_timer; /* 0x02d0 */ |
241 | __u64 last_update_clock; /* 0x02d8 */ | 242 | __u64 last_update_timer; /* 0x02d8 */ |
243 | __u64 last_update_clock; /* 0x02e0 */ | ||
242 | 244 | ||
243 | /* Current process. */ | 245 | /* Current process. */ |
244 | __u64 current_task; /* 0x02e0 */ | 246 | __u64 current_task; /* 0x02e8 */ |
245 | __u64 thread_info; /* 0x02e8 */ | 247 | __u64 thread_info; /* 0x02f0 */ |
246 | __u64 kernel_stack; /* 0x02f0 */ | 248 | __u64 kernel_stack; /* 0x02f8 */ |
247 | 249 | ||
248 | /* Interrupt and panic stack. */ | 250 | /* Interrupt and panic stack. */ |
249 | __u64 async_stack; /* 0x02f8 */ | 251 | __u64 async_stack; /* 0x0300 */ |
250 | __u64 panic_stack; /* 0x0300 */ | 252 | __u64 panic_stack; /* 0x0308 */ |
251 | 253 | ||
252 | /* Address space pointer. */ | 254 | /* Address space pointer. */ |
253 | __u64 kernel_asce; /* 0x0308 */ | 255 | __u64 kernel_asce; /* 0x0310 */ |
254 | __u64 user_asce; /* 0x0310 */ | 256 | __u64 user_asce; /* 0x0318 */ |
255 | __u64 user_exec_asce; /* 0x0318 */ | 257 | __u64 user_exec_asce; /* 0x0320 */ |
256 | 258 | ||
257 | /* SMP info area */ | 259 | /* SMP info area */ |
258 | struct cpuid cpu_id; /* 0x0320 */ | ||
259 | __u32 cpu_nr; /* 0x0328 */ | 260 | __u32 cpu_nr; /* 0x0328 */ |
260 | __u32 softirq_pending; /* 0x032c */ | 261 | __u32 softirq_pending; /* 0x032c */ |
261 | __u64 percpu_offset; /* 0x0330 */ | 262 | __u64 percpu_offset; /* 0x0330 */ |
262 | __u64 ext_call_fast; /* 0x0338 */ | 263 | __u64 ext_call_fast; /* 0x0338 */ |
263 | __u64 int_clock; /* 0x0340 */ | 264 | __u64 int_clock; /* 0x0340 */ |
264 | __u64 clock_comparator; /* 0x0348 */ | 265 | __u64 mcck_clock; /* 0x0348 */ |
265 | __u64 vdso_per_cpu_data; /* 0x0350 */ | 266 | __u64 clock_comparator; /* 0x0350 */ |
266 | __u64 machine_flags; /* 0x0358 */ | 267 | __u64 vdso_per_cpu_data; /* 0x0358 */ |
267 | __u64 ftrace_func; /* 0x0360 */ | 268 | __u64 machine_flags; /* 0x0360 */ |
268 | __u8 pad_0x0368[0x0380-0x0368]; /* 0x0368 */ | 269 | __u64 ftrace_func; /* 0x0368 */ |
270 | __u64 sie_hook; /* 0x0370 */ | ||
271 | __u64 cmf_hpp; /* 0x0378 */ | ||
269 | 272 | ||
270 | /* Interrupt response block. */ | 273 | /* Interrupt response block. */ |
271 | __u8 irb[64]; /* 0x0380 */ | 274 | __u8 irb[64]; /* 0x0380 */ |
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index fef9b33cdd5..e2c218dc68a 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h | |||
@@ -328,8 +328,8 @@ struct pt_regs | |||
328 | psw_t psw; | 328 | psw_t psw; |
329 | unsigned long gprs[NUM_GPRS]; | 329 | unsigned long gprs[NUM_GPRS]; |
330 | unsigned long orig_gpr2; | 330 | unsigned long orig_gpr2; |
331 | unsigned short svcnr; | ||
332 | unsigned short ilc; | 331 | unsigned short ilc; |
332 | unsigned short svcnr; | ||
333 | }; | 333 | }; |
334 | #endif | 334 | #endif |
335 | 335 | ||
@@ -436,6 +436,7 @@ typedef struct | |||
436 | #define PTRACE_PEEKDATA_AREA 0x5003 | 436 | #define PTRACE_PEEKDATA_AREA 0x5003 |
437 | #define PTRACE_POKETEXT_AREA 0x5004 | 437 | #define PTRACE_POKETEXT_AREA 0x5004 |
438 | #define PTRACE_POKEDATA_AREA 0x5005 | 438 | #define PTRACE_POKEDATA_AREA 0x5005 |
439 | #define PTRACE_GET_LAST_BREAK 0x5006 | ||
439 | 440 | ||
440 | /* | 441 | /* |
441 | * PT_PROT definition is loosely based on hppa bsd definition in | 442 | * PT_PROT definition is loosely based on hppa bsd definition in |
diff --git a/arch/s390/include/asm/qdio.h b/arch/s390/include/asm/qdio.h index 9b04b1102bb..0eaae626027 100644 --- a/arch/s390/include/asm/qdio.h +++ b/arch/s390/include/asm/qdio.h | |||
@@ -368,14 +368,12 @@ struct qdio_initialize { | |||
368 | #define QDIO_FLAG_SYNC_OUTPUT 0x02 | 368 | #define QDIO_FLAG_SYNC_OUTPUT 0x02 |
369 | #define QDIO_FLAG_PCI_OUT 0x10 | 369 | #define QDIO_FLAG_PCI_OUT 0x10 |
370 | 370 | ||
371 | extern int qdio_initialize(struct qdio_initialize *); | ||
372 | extern int qdio_allocate(struct qdio_initialize *); | 371 | extern int qdio_allocate(struct qdio_initialize *); |
373 | extern int qdio_establish(struct qdio_initialize *); | 372 | extern int qdio_establish(struct qdio_initialize *); |
374 | extern int qdio_activate(struct ccw_device *); | 373 | extern int qdio_activate(struct ccw_device *); |
375 | 374 | ||
376 | extern int do_QDIO(struct ccw_device *cdev, unsigned int callflags, | 375 | extern int do_QDIO(struct ccw_device *cdev, unsigned int callflags, |
377 | int q_nr, unsigned int bufnr, unsigned int count); | 376 | int q_nr, unsigned int bufnr, unsigned int count); |
378 | extern int qdio_cleanup(struct ccw_device*, int); | ||
379 | extern int qdio_shutdown(struct ccw_device*, int); | 377 | extern int qdio_shutdown(struct ccw_device*, int); |
380 | extern int qdio_free(struct ccw_device *); | 378 | extern int qdio_free(struct ccw_device *); |
381 | extern int qdio_get_ssqd_desc(struct ccw_device *dev, struct qdio_ssqd_desc*); | 379 | extern int qdio_get_ssqd_desc(struct ccw_device *dev, struct qdio_ssqd_desc*); |
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h index 9ab6bd3a65d..25e831d58e1 100644 --- a/arch/s390/include/asm/setup.h +++ b/arch/s390/include/asm/setup.h | |||
@@ -2,7 +2,7 @@ | |||
2 | * include/asm-s390/setup.h | 2 | * include/asm-s390/setup.h |
3 | * | 3 | * |
4 | * S390 version | 4 | * S390 version |
5 | * Copyright IBM Corp. 1999,2006 | 5 | * Copyright IBM Corp. 1999,2010 |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #ifndef _ASM_S390_SETUP_H | 8 | #ifndef _ASM_S390_SETUP_H |
@@ -72,6 +72,7 @@ extern unsigned int user_mode; | |||
72 | #define MACHINE_FLAG_HPAGE (1UL << 10) | 72 | #define MACHINE_FLAG_HPAGE (1UL << 10) |
73 | #define MACHINE_FLAG_PFMF (1UL << 11) | 73 | #define MACHINE_FLAG_PFMF (1UL << 11) |
74 | #define MACHINE_FLAG_LPAR (1UL << 12) | 74 | #define MACHINE_FLAG_LPAR (1UL << 12) |
75 | #define MACHINE_FLAG_SPP (1UL << 13) | ||
75 | 76 | ||
76 | #define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM) | 77 | #define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM) |
77 | #define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM) | 78 | #define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM) |
@@ -88,6 +89,7 @@ extern unsigned int user_mode; | |||
88 | #define MACHINE_HAS_MVCOS (0) | 89 | #define MACHINE_HAS_MVCOS (0) |
89 | #define MACHINE_HAS_HPAGE (0) | 90 | #define MACHINE_HAS_HPAGE (0) |
90 | #define MACHINE_HAS_PFMF (0) | 91 | #define MACHINE_HAS_PFMF (0) |
92 | #define MACHINE_HAS_SPP (0) | ||
91 | #else /* __s390x__ */ | 93 | #else /* __s390x__ */ |
92 | #define MACHINE_HAS_IEEE (1) | 94 | #define MACHINE_HAS_IEEE (1) |
93 | #define MACHINE_HAS_CSP (1) | 95 | #define MACHINE_HAS_CSP (1) |
@@ -97,6 +99,7 @@ extern unsigned int user_mode; | |||
97 | #define MACHINE_HAS_MVCOS (S390_lowcore.machine_flags & MACHINE_FLAG_MVCOS) | 99 | #define MACHINE_HAS_MVCOS (S390_lowcore.machine_flags & MACHINE_FLAG_MVCOS) |
98 | #define MACHINE_HAS_HPAGE (S390_lowcore.machine_flags & MACHINE_FLAG_HPAGE) | 100 | #define MACHINE_HAS_HPAGE (S390_lowcore.machine_flags & MACHINE_FLAG_HPAGE) |
99 | #define MACHINE_HAS_PFMF (S390_lowcore.machine_flags & MACHINE_FLAG_PFMF) | 101 | #define MACHINE_HAS_PFMF (S390_lowcore.machine_flags & MACHINE_FLAG_PFMF) |
102 | #define MACHINE_HAS_SPP (S390_lowcore.machine_flags & MACHINE_FLAG_SPP) | ||
100 | #endif /* __s390x__ */ | 103 | #endif /* __s390x__ */ |
101 | 104 | ||
102 | #define ZFCPDUMP_HSA_SIZE (32UL<<20) | 105 | #define ZFCPDUMP_HSA_SIZE (32UL<<20) |
diff --git a/arch/s390/include/asm/system.h b/arch/s390/include/asm/system.h index 1741c1556a4..cef66210c84 100644 --- a/arch/s390/include/asm/system.h +++ b/arch/s390/include/asm/system.h | |||
@@ -459,11 +459,6 @@ extern void (*_machine_power_off)(void); | |||
459 | 459 | ||
460 | #define arch_align_stack(x) (x) | 460 | #define arch_align_stack(x) (x) |
461 | 461 | ||
462 | #ifdef CONFIG_TRACE_IRQFLAGS | ||
463 | extern psw_t sysc_restore_trace_psw; | ||
464 | extern psw_t io_restore_trace_psw; | ||
465 | #endif | ||
466 | |||
467 | static inline int tprot(unsigned long addr) | 462 | static inline int tprot(unsigned long addr) |
468 | { | 463 | { |
469 | int rc = -EFAULT; | 464 | int rc = -EFAULT; |
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index 34f0873d652..5baf0230b29 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h | |||
@@ -50,6 +50,7 @@ struct thread_info { | |||
50 | struct restart_block restart_block; | 50 | struct restart_block restart_block; |
51 | __u64 user_timer; | 51 | __u64 user_timer; |
52 | __u64 system_timer; | 52 | __u64 system_timer; |
53 | unsigned long last_break; /* last breaking-event-address. */ | ||
53 | }; | 54 | }; |
54 | 55 | ||
55 | /* | 56 | /* |
@@ -96,7 +97,7 @@ static inline struct thread_info *current_thread_info(void) | |||
96 | #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling | 97 | #define TIF_POLLING_NRFLAG 16 /* true if poll_idle() is polling |
97 | TIF_NEED_RESCHED */ | 98 | TIF_NEED_RESCHED */ |
98 | #define TIF_31BIT 17 /* 32bit process */ | 99 | #define TIF_31BIT 17 /* 32bit process */ |
99 | #define TIF_MEMDIE 18 | 100 | #define TIF_MEMDIE 18 /* is terminating due to OOM killer */ |
100 | #define TIF_RESTORE_SIGMASK 19 /* restore signal mask in do_signal() */ | 101 | #define TIF_RESTORE_SIGMASK 19 /* restore signal mask in do_signal() */ |
101 | #define TIF_FREEZE 20 /* thread is freezing for suspend */ | 102 | #define TIF_FREEZE 20 /* thread is freezing for suspend */ |
102 | 103 | ||
diff --git a/arch/s390/include/asm/timex.h b/arch/s390/include/asm/timex.h index f174bdaa6b5..09d345a701d 100644 --- a/arch/s390/include/asm/timex.h +++ b/arch/s390/include/asm/timex.h | |||
@@ -61,11 +61,15 @@ static inline unsigned long long get_clock (void) | |||
61 | return clk; | 61 | return clk; |
62 | } | 62 | } |
63 | 63 | ||
64 | static inline void get_clock_ext(char *clk) | ||
65 | { | ||
66 | asm volatile("stcke %0" : "=Q" (*clk) : : "cc"); | ||
67 | } | ||
68 | |||
64 | static inline unsigned long long get_clock_xt(void) | 69 | static inline unsigned long long get_clock_xt(void) |
65 | { | 70 | { |
66 | unsigned char clk[16]; | 71 | unsigned char clk[16]; |
67 | 72 | get_clock_ext(clk); | |
68 | asm volatile("stcke %0" : "=Q" (clk) : : "cc"); | ||
69 | return *((unsigned long long *)&clk[1]); | 73 | return *((unsigned long long *)&clk[1]); |
70 | } | 74 | } |
71 | 75 | ||
diff --git a/arch/s390/include/asm/topology.h b/arch/s390/include/asm/topology.h index 6e7211abd95..dc8a67297d0 100644 --- a/arch/s390/include/asm/topology.h +++ b/arch/s390/include/asm/topology.h | |||
@@ -7,8 +7,10 @@ | |||
7 | 7 | ||
8 | const struct cpumask *cpu_coregroup_mask(unsigned int cpu); | 8 | const struct cpumask *cpu_coregroup_mask(unsigned int cpu); |
9 | 9 | ||
10 | extern unsigned char cpu_core_id[NR_CPUS]; | ||
10 | extern cpumask_t cpu_core_map[NR_CPUS]; | 11 | extern cpumask_t cpu_core_map[NR_CPUS]; |
11 | 12 | ||
13 | #define topology_core_id(cpu) (cpu_core_id[cpu]) | ||
12 | #define topology_core_cpumask(cpu) (&cpu_core_map[cpu]) | 14 | #define topology_core_cpumask(cpu) (&cpu_core_map[cpu]) |
13 | 15 | ||
14 | int topology_set_cpu_management(int fc); | 16 | int topology_set_cpu_management(int fc); |