aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-10-29 11:49:18 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-29 11:49:18 -0400
commitf56f44001cb5b40089deac094dbb74e5c9f64d81 (patch)
tree0fb004b475852ed87121a774de7b768bb6164156 /arch/s390
parent162164f7e92da970666e7492fd58644f3c1f8574 (diff)
parent9ec2708053b647969bee862902872d44a5f9b439 (diff)
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: [S390] fix kprobes single stepping [S390] tape: fix dbf usage [S390] dasd: provide a Sense Path Group ID ioctl [S390] ftrace: select HAVE_C_RECORDMCOUNT [S390] vdso: get rid of redefinition warnings [S390] facility detection: remove unused variable [S390] hypfs: Fix error handling in hypfs_diag initialization [S390] topology: fix cpu masks for topology=off case [S390] topology: add SCHED_MC config option [S390] Kconfig: add machine type number to code generation options [S390] Add z196 machine type to setup_hwcaps
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/Kconfig61
-rw-r--r--arch/s390/hypfs/hypfs_diag.c19
-rw-r--r--arch/s390/include/asm/dasd.h40
-rw-r--r--arch/s390/kernel/asm-offsets.c6
-rw-r--r--arch/s390/kernel/early.c2
-rw-r--r--arch/s390/kernel/entry.S1
-rw-r--r--arch/s390/kernel/entry64.S1
-rw-r--r--arch/s390/kernel/kprobes.c9
-rw-r--r--arch/s390/kernel/setup.c3
-rw-r--r--arch/s390/kernel/sysinfo.c2
-rw-r--r--arch/s390/kernel/topology.c6
-rw-r--r--arch/s390/kernel/vdso32/clock_getres.S6
-rw-r--r--arch/s390/kernel/vdso32/clock_gettime.S4
-rw-r--r--arch/s390/kernel/vdso64/clock_getres.S6
-rw-r--r--arch/s390/kernel/vdso64/clock_gettime.S4
15 files changed, 99 insertions, 71 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index fabb40bc4e19..e0b98e71ff47 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -80,6 +80,7 @@ config S390
80 select HAVE_FUNCTION_TRACER 80 select HAVE_FUNCTION_TRACER
81 select HAVE_FUNCTION_TRACE_MCOUNT_TEST 81 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
82 select HAVE_FTRACE_MCOUNT_RECORD 82 select HAVE_FTRACE_MCOUNT_RECORD
83 select HAVE_C_RECORDMCOUNT
83 select HAVE_SYSCALL_TRACEPOINTS 84 select HAVE_SYSCALL_TRACEPOINTS
84 select HAVE_DYNAMIC_FTRACE 85 select HAVE_DYNAMIC_FTRACE
85 select HAVE_FUNCTION_GRAPH_TRACER 86 select HAVE_FUNCTION_GRAPH_TRACER
@@ -144,7 +145,7 @@ source "kernel/time/Kconfig"
144config 64BIT 145config 64BIT
145 bool "64 bit kernel" 146 bool "64 bit kernel"
146 help 147 help
147 Select this option if you have a 64 bit IBM zSeries machine 148 Select this option if you have an IBM z/Architecture machine
148 and want to use the 64 bit addressing mode. 149 and want to use the 64 bit addressing mode.
149 150
150config 32BIT 151config 32BIT
@@ -196,9 +197,18 @@ config HOTPLUG_CPU
196 can be controlled through /sys/devices/system/cpu/cpu#. 197 can be controlled through /sys/devices/system/cpu/cpu#.
197 Say N if you want to disable CPU hotplug. 198 Say N if you want to disable CPU hotplug.
198 199
200config SCHED_MC
201 def_bool y
202 prompt "Multi-core scheduler support"
203 depends on SMP
204 help
205 Multi-core scheduler support improves the CPU scheduler's decision
206 making when dealing with multi-core CPU chips at a cost of slightly
207 increased overhead in some places.
208
199config SCHED_BOOK 209config SCHED_BOOK
200 bool "Book scheduler support" 210 bool "Book scheduler support"
201 depends on SMP 211 depends on SMP && SCHED_MC
202 help 212 help
203 Book scheduler support improves the CPU scheduler's decision making 213 Book scheduler support improves the CPU scheduler's decision making
204 when dealing with machines that have several books. 214 when dealing with machines that have several books.
@@ -208,7 +218,7 @@ config MATHEMU
208 depends on MARCH_G5 218 depends on MARCH_G5
209 help 219 help
210 This option is required for IEEE compliant floating point arithmetic 220 This option is required for IEEE compliant floating point arithmetic
211 on older S/390 machines. Say Y unless you know your machine doesn't 221 on older ESA/390 machines. Say Y unless you know your machine doesn't
212 need this. 222 need this.
213 223
214config COMPAT 224config COMPAT
@@ -237,8 +247,8 @@ config S390_EXEC_PROTECT
237 space programs and it also selects the addressing mode option above. 247 space programs and it also selects the addressing mode option above.
238 The kernel parameter noexec=on will enable this feature and also 248 The kernel parameter noexec=on will enable this feature and also
239 switch the addressing modes, default is disabled. Enabling this (via 249 switch the addressing modes, default is disabled. Enabling this (via
240 kernel parameter) on machines earlier than IBM System z9-109 EC/BC 250 kernel parameter) on machines earlier than IBM System z9 this will
241 will reduce system performance. 251 reduce system performance.
242 252
243comment "Code generation options" 253comment "Code generation options"
244 254
@@ -247,49 +257,46 @@ choice
247 default MARCH_G5 257 default MARCH_G5
248 258
249config MARCH_G5 259config MARCH_G5
250 bool "S/390 model G5 and G6" 260 bool "System/390 model G5 and G6"
251 depends on !64BIT 261 depends on !64BIT
252 help 262 help
253 Select this to build a 31 bit kernel that works 263 Select this to build a 31 bit kernel that works
254 on all S/390 and zSeries machines. 264 on all ESA/390 and z/Architecture machines.
255 265
256config MARCH_Z900 266config MARCH_Z900
257 bool "IBM eServer zSeries model z800 and z900" 267 bool "IBM zSeries model z800 and z900"
258 help 268 help
259 Select this to optimize for zSeries machines. This 269 Select this to enable optimizations for model z800/z900 (2064 and
260 will enable some optimizations that are not available 270 2066 series). This will enable some optimizations that are not
261 on older 31 bit only CPUs. 271 available on older ESA/390 (31 Bit) only CPUs.
262 272
263config MARCH_Z990 273config MARCH_Z990
264 bool "IBM eServer zSeries model z890 and z990" 274 bool "IBM zSeries model z890 and z990"
265 help 275 help
266 Select this enable optimizations for model z890/z990. 276 Select this to enable optimizations for model z890/z990 (2084 and
267 This will be slightly faster but does not work on 277 2086 series). The kernel will be slightly faster but will not work
268 older machines such as the z900. 278 on older machines.
269 279
270config MARCH_Z9_109 280config MARCH_Z9_109
271 bool "IBM System z9" 281 bool "IBM System z9"
272 help 282 help
273 Select this to enable optimizations for IBM System z9-109, IBM 283 Select this to enable optimizations for IBM System z9 (2094 and
274 System z9 Enterprise Class (z9 EC), and IBM System z9 Business 284 2096 series). The kernel will be slightly faster but will not work
275 Class (z9 BC). The kernel will be slightly faster but will not 285 on older machines.
276 work on older machines such as the z990, z890, z900, and z800.
277 286
278config MARCH_Z10 287config MARCH_Z10
279 bool "IBM System z10" 288 bool "IBM System z10"
280 help 289 help
281 Select this to enable optimizations for IBM System z10. The 290 Select this to enable optimizations for IBM System z10 (2097 and
282 kernel will be slightly faster but will not work on older 291 2098 series). The kernel will be slightly faster but will not work
283 machines such as the z990, z890, z900, z800, z9-109, z9-ec 292 on older machines.
284 and z9-bc.
285 293
286config MARCH_Z196 294config MARCH_Z196
287 bool "IBM zEnterprise 196" 295 bool "IBM zEnterprise 196"
288 help 296 help
289 Select this to enable optimizations for IBM zEnterprise 196. 297 Select this to enable optimizations for IBM zEnterprise 196
290 The kernel will be slightly faster but will not work on older 298 (2817 series). The kernel will be slightly faster but will not work
291 machines such as the z990, z890, z900, z800, z9-109, z9-ec, 299 on older machines.
292 z9-bc, z10-ec and z10-bc.
293 300
294endchoice 301endchoice
295 302
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c
index 020e51c063d2..cd4a81be9cf8 100644
--- a/arch/s390/hypfs/hypfs_diag.c
+++ b/arch/s390/hypfs/hypfs_diag.c
@@ -638,18 +638,21 @@ __init int hypfs_diag_init(void)
638 pr_err("The hardware system does not support hypfs\n"); 638 pr_err("The hardware system does not support hypfs\n");
639 return -ENODATA; 639 return -ENODATA;
640 } 640 }
641 rc = diag224_get_name_table();
642 if (rc) {
643 diag204_free_buffer();
644 pr_err("The hardware system does not provide all "
645 "functions required by hypfs\n");
646 }
647 if (diag204_info_type == INFO_EXT) { 641 if (diag204_info_type == INFO_EXT) {
648 rc = hypfs_dbfs_init(); 642 rc = hypfs_dbfs_init();
649 if (rc) 643 if (rc)
650 diag204_free_buffer(); 644 return rc;
651 } 645 }
652 return rc; 646 if (MACHINE_IS_LPAR) {
647 rc = diag224_get_name_table();
648 if (rc) {
649 pr_err("The hardware system does not provide all "
650 "functions required by hypfs\n");
651 debugfs_remove(dbfs_d204_file);
652 return rc;
653 }
654 }
655 return 0;
653} 656}
654 657
655void hypfs_diag_exit(void) 658void hypfs_diag_exit(void)
diff --git a/arch/s390/include/asm/dasd.h b/arch/s390/include/asm/dasd.h
index 218bce81ec70..b604a9186f8e 100644
--- a/arch/s390/include/asm/dasd.h
+++ b/arch/s390/include/asm/dasd.h
@@ -217,6 +217,25 @@ typedef struct dasd_symmio_parms {
217 int rssd_result_len; 217 int rssd_result_len;
218} __attribute__ ((packed)) dasd_symmio_parms_t; 218} __attribute__ ((packed)) dasd_symmio_parms_t;
219 219
220/*
221 * Data returned by Sense Path Group ID (SNID)
222 */
223struct dasd_snid_data {
224 struct {
225 __u8 group:2;
226 __u8 reserve:2;
227 __u8 mode:1;
228 __u8 res:3;
229 } __attribute__ ((packed)) path_state;
230 __u8 pgid[11];
231} __attribute__ ((packed));
232
233struct dasd_snid_ioctl_data {
234 struct dasd_snid_data data;
235 __u8 path_mask;
236} __attribute__ ((packed));
237
238
220/******************************************************************************** 239/********************************************************************************
221 * SECTION: Definition of IOCTLs 240 * SECTION: Definition of IOCTLs
222 * 241 *
@@ -261,25 +280,10 @@ typedef struct dasd_symmio_parms {
261/* Set Attributes (cache operations) */ 280/* Set Attributes (cache operations) */
262#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER,2,attrib_data_t) 281#define BIODASDSATTR _IOW(DASD_IOCTL_LETTER,2,attrib_data_t)
263 282
283/* Get Sense Path Group ID (SNID) data */
284#define BIODASDSNID _IOWR(DASD_IOCTL_LETTER, 1, struct dasd_snid_ioctl_data)
285
264#define BIODASDSYMMIO _IOWR(DASD_IOCTL_LETTER, 240, dasd_symmio_parms_t) 286#define BIODASDSYMMIO _IOWR(DASD_IOCTL_LETTER, 240, dasd_symmio_parms_t)
265 287
266#endif /* DASD_H */ 288#endif /* DASD_H */
267 289
268/*
269 * Overrides for Emacs so that we follow Linus's tabbing style.
270 * Emacs will notice this stuff at the end of the file and automatically
271 * adjust the settings for this buffer only. This must remain at the end
272 * of the file.
273 * ---------------------------------------------------------------------------
274 * Local variables:
275 * c-indent-level: 4
276 * c-brace-imaginary-offset: 0
277 * c-brace-offset: -4
278 * c-argdecl-indent: 4
279 * c-label-offset: -4
280 * c-continued-statement-offset: 4
281 * c-continued-brace-offset: 0
282 * indent-tabs-mode: nil
283 * tab-width: 8
284 * End:
285 */
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c
index f3c1b823c9a8..33982e7ce04d 100644
--- a/arch/s390/kernel/asm-offsets.c
+++ b/arch/s390/kernel/asm-offsets.c
@@ -66,9 +66,9 @@ int main(void)
66 DEFINE(__VDSO_ECTG_BASE, offsetof(struct vdso_per_cpu_data, ectg_timer_base)); 66 DEFINE(__VDSO_ECTG_BASE, offsetof(struct vdso_per_cpu_data, ectg_timer_base));
67 DEFINE(__VDSO_ECTG_USER, offsetof(struct vdso_per_cpu_data, ectg_user_time)); 67 DEFINE(__VDSO_ECTG_USER, offsetof(struct vdso_per_cpu_data, ectg_user_time));
68 /* constants used by the vdso */ 68 /* constants used by the vdso */
69 DEFINE(CLOCK_REALTIME, CLOCK_REALTIME); 69 DEFINE(__CLOCK_REALTIME, CLOCK_REALTIME);
70 DEFINE(CLOCK_MONOTONIC, CLOCK_MONOTONIC); 70 DEFINE(__CLOCK_MONOTONIC, CLOCK_MONOTONIC);
71 DEFINE(CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC); 71 DEFINE(__CLOCK_REALTIME_RES, MONOTONIC_RES_NSEC);
72 BLANK(); 72 BLANK();
73 /* constants for SIGP */ 73 /* constants for SIGP */
74 DEFINE(__SIGP_STOP, sigp_stop); 74 DEFINE(__SIGP_STOP, sigp_stop);
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index d149609e46e6..3b7e7dddc324 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -282,8 +282,6 @@ static noinline __init void setup_facility_list(void)
282static noinline __init void setup_hpage(void) 282static noinline __init void setup_hpage(void)
283{ 283{
284#ifndef CONFIG_DEBUG_PAGEALLOC 284#ifndef CONFIG_DEBUG_PAGEALLOC
285 unsigned int facilities;
286
287 if (!test_facility(2) || !test_facility(8)) 285 if (!test_facility(2) || !test_facility(8))
288 return; 286 return;
289 S390_lowcore.machine_flags |= MACHINE_FLAG_HPAGE; 287 S390_lowcore.machine_flags |= MACHINE_FLAG_HPAGE;
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S
index 5efce7202984..1ecc337fb679 100644
--- a/arch/s390/kernel/entry.S
+++ b/arch/s390/kernel/entry.S
@@ -557,6 +557,7 @@ pgm_svcper:
557# per was called from kernel, must be kprobes 557# per was called from kernel, must be kprobes
558# 558#
559kernel_per: 559kernel_per:
560 REENABLE_IRQS
560 mvi SP_SVCNR(%r15),0xff # set trap indication to pgm check 561 mvi SP_SVCNR(%r15),0xff # set trap indication to pgm check
561 mvi SP_SVCNR+1(%r15),0xff 562 mvi SP_SVCNR+1(%r15),0xff
562 la %r2,SP_PTREGS(%r15) # address of register-save area 563 la %r2,SP_PTREGS(%r15) # address of register-save area
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S
index a2be23922f43..8f3e802174db 100644
--- a/arch/s390/kernel/entry64.S
+++ b/arch/s390/kernel/entry64.S
@@ -568,6 +568,7 @@ pgm_svcper:
568# per was called from kernel, must be kprobes 568# per was called from kernel, must be kprobes
569# 569#
570kernel_per: 570kernel_per:
571 REENABLE_IRQS
571 xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number 572 xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number
572 la %r2,SP_PTREGS(%r15) # address of register-save area 573 la %r2,SP_PTREGS(%r15) # address of register-save area
573 brasl %r14,do_single_step 574 brasl %r14,do_single_step
diff --git a/arch/s390/kernel/kprobes.c b/arch/s390/kernel/kprobes.c
index 2a3d2bf6f083..d60fc4398516 100644
--- a/arch/s390/kernel/kprobes.c
+++ b/arch/s390/kernel/kprobes.c
@@ -316,6 +316,8 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
316 return 1; 316 return 1;
317 317
318ss_probe: 318ss_probe:
319 if (regs->psw.mask & (PSW_MASK_PER | PSW_MASK_IO))
320 local_irq_disable();
319 prepare_singlestep(p, regs); 321 prepare_singlestep(p, regs);
320 kcb->kprobe_status = KPROBE_HIT_SS; 322 kcb->kprobe_status = KPROBE_HIT_SS;
321 return 1; 323 return 1;
@@ -463,6 +465,8 @@ static int __kprobes post_kprobe_handler(struct pt_regs *regs)
463 goto out; 465 goto out;
464 } 466 }
465 reset_current_kprobe(); 467 reset_current_kprobe();
468 if (regs->psw.mask & (PSW_MASK_PER | PSW_MASK_IO))
469 local_irq_enable();
466out: 470out:
467 preempt_enable_no_resched(); 471 preempt_enable_no_resched();
468 472
@@ -502,8 +506,11 @@ int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
502 regs->psw.mask |= kcb->kprobe_saved_imask; 506 regs->psw.mask |= kcb->kprobe_saved_imask;
503 if (kcb->kprobe_status == KPROBE_REENTER) 507 if (kcb->kprobe_status == KPROBE_REENTER)
504 restore_previous_kprobe(kcb); 508 restore_previous_kprobe(kcb);
505 else 509 else {
506 reset_current_kprobe(); 510 reset_current_kprobe();
511 if (regs->psw.mask & (PSW_MASK_PER | PSW_MASK_IO))
512 local_irq_enable();
513 }
507 preempt_enable_no_resched(); 514 preempt_enable_no_resched();
508 break; 515 break;
509 case KPROBE_HIT_ACTIVE: 516 case KPROBE_HIT_ACTIVE:
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index e3ceb911dc75..6f6350826c81 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -761,6 +761,9 @@ static void __init setup_hwcaps(void)
761 case 0x2098: 761 case 0x2098:
762 strcpy(elf_platform, "z10"); 762 strcpy(elf_platform, "z10");
763 break; 763 break;
764 case 0x2817:
765 strcpy(elf_platform, "z196");
766 break;
764 } 767 }
765} 768}
766 769
diff --git a/arch/s390/kernel/sysinfo.c b/arch/s390/kernel/sysinfo.c
index f04d93aa48ec..5c9e439bf3f6 100644
--- a/arch/s390/kernel/sysinfo.c
+++ b/arch/s390/kernel/sysinfo.c
@@ -106,11 +106,13 @@ static int stsi_15_1_x(struct sysinfo_15_1_x *info, char *page, int len)
106 for (i = 0; i < TOPOLOGY_NR_MAG; i++) 106 for (i = 0; i < TOPOLOGY_NR_MAG; i++)
107 len += sprintf(page + len, " %d", info->mag[i]); 107 len += sprintf(page + len, " %d", info->mag[i]);
108 len += sprintf(page + len, "\n"); 108 len += sprintf(page + len, "\n");
109#ifdef CONFIG_SCHED_MC
109 store_topology(info); 110 store_topology(info);
110 len += sprintf(page + len, "CPU Topology SW: "); 111 len += sprintf(page + len, "CPU Topology SW: ");
111 for (i = 0; i < TOPOLOGY_NR_MAG; i++) 112 for (i = 0; i < TOPOLOGY_NR_MAG; i++)
112 len += sprintf(page + len, " %d", info->mag[i]); 113 len += sprintf(page + len, " %d", info->mag[i]);
113 len += sprintf(page + len, "\n"); 114 len += sprintf(page + len, "\n");
115#endif
114 return len; 116 return len;
115} 117}
116 118
diff --git a/arch/s390/kernel/topology.c b/arch/s390/kernel/topology.c
index a9dee9048ee5..94b06c31fc8a 100644
--- a/arch/s390/kernel/topology.c
+++ b/arch/s390/kernel/topology.c
@@ -53,8 +53,10 @@ static cpumask_t cpu_group_map(struct mask_info *info, unsigned int cpu)
53 cpumask_t mask; 53 cpumask_t mask;
54 54
55 cpus_clear(mask); 55 cpus_clear(mask);
56 if (!topology_enabled || !MACHINE_HAS_TOPOLOGY) 56 if (!topology_enabled || !MACHINE_HAS_TOPOLOGY) {
57 return cpu_possible_map; 57 cpumask_copy(&mask, cpumask_of(cpu));
58 return mask;
59 }
58 while (info) { 60 while (info) {
59 if (cpu_isset(cpu, info->mask)) { 61 if (cpu_isset(cpu, info->mask)) {
60 mask = info->mask; 62 mask = info->mask;
diff --git a/arch/s390/kernel/vdso32/clock_getres.S b/arch/s390/kernel/vdso32/clock_getres.S
index 9532c4e6a9d2..36aaa25d05da 100644
--- a/arch/s390/kernel/vdso32/clock_getres.S
+++ b/arch/s390/kernel/vdso32/clock_getres.S
@@ -19,9 +19,9 @@
19 .type __kernel_clock_getres,@function 19 .type __kernel_clock_getres,@function
20__kernel_clock_getres: 20__kernel_clock_getres:
21 .cfi_startproc 21 .cfi_startproc
22 chi %r2,CLOCK_REALTIME 22 chi %r2,__CLOCK_REALTIME
23 je 0f 23 je 0f
24 chi %r2,CLOCK_MONOTONIC 24 chi %r2,__CLOCK_MONOTONIC
25 jne 3f 25 jne 3f
260: ltr %r3,%r3 260: ltr %r3,%r3
27 jz 2f /* res == NULL */ 27 jz 2f /* res == NULL */
@@ -34,6 +34,6 @@ __kernel_clock_getres:
343: lhi %r1,__NR_clock_getres /* fallback to svc */ 343: lhi %r1,__NR_clock_getres /* fallback to svc */
35 svc 0 35 svc 0
36 br %r14 36 br %r14
374: .long CLOCK_REALTIME_RES 374: .long __CLOCK_REALTIME_RES
38 .cfi_endproc 38 .cfi_endproc
39 .size __kernel_clock_getres,.-__kernel_clock_getres 39 .size __kernel_clock_getres,.-__kernel_clock_getres
diff --git a/arch/s390/kernel/vdso32/clock_gettime.S b/arch/s390/kernel/vdso32/clock_gettime.S
index 969643954273..b2224e0b974c 100644
--- a/arch/s390/kernel/vdso32/clock_gettime.S
+++ b/arch/s390/kernel/vdso32/clock_gettime.S
@@ -21,9 +21,9 @@ __kernel_clock_gettime:
21 .cfi_startproc 21 .cfi_startproc
22 basr %r5,0 22 basr %r5,0
230: al %r5,21f-0b(%r5) /* get &_vdso_data */ 230: al %r5,21f-0b(%r5) /* get &_vdso_data */
24 chi %r2,CLOCK_REALTIME 24 chi %r2,__CLOCK_REALTIME
25 je 10f 25 je 10f
26 chi %r2,CLOCK_MONOTONIC 26 chi %r2,__CLOCK_MONOTONIC
27 jne 19f 27 jne 19f
28 28
29 /* CLOCK_MONOTONIC */ 29 /* CLOCK_MONOTONIC */
diff --git a/arch/s390/kernel/vdso64/clock_getres.S b/arch/s390/kernel/vdso64/clock_getres.S
index 9ce8caafdb4e..176e1f75f9aa 100644
--- a/arch/s390/kernel/vdso64/clock_getres.S
+++ b/arch/s390/kernel/vdso64/clock_getres.S
@@ -19,9 +19,9 @@
19 .type __kernel_clock_getres,@function 19 .type __kernel_clock_getres,@function
20__kernel_clock_getres: 20__kernel_clock_getres:
21 .cfi_startproc 21 .cfi_startproc
22 cghi %r2,CLOCK_REALTIME 22 cghi %r2,__CLOCK_REALTIME
23 je 0f 23 je 0f
24 cghi %r2,CLOCK_MONOTONIC 24 cghi %r2,__CLOCK_MONOTONIC
25 je 0f 25 je 0f
26 cghi %r2,-2 /* CLOCK_THREAD_CPUTIME_ID for this thread */ 26 cghi %r2,-2 /* CLOCK_THREAD_CPUTIME_ID for this thread */
27 jne 2f 27 jne 2f
@@ -39,6 +39,6 @@ __kernel_clock_getres:
392: lghi %r1,__NR_clock_getres /* fallback to svc */ 392: lghi %r1,__NR_clock_getres /* fallback to svc */
40 svc 0 40 svc 0
41 br %r14 41 br %r14
423: .quad CLOCK_REALTIME_RES 423: .quad __CLOCK_REALTIME_RES
43 .cfi_endproc 43 .cfi_endproc
44 .size __kernel_clock_getres,.-__kernel_clock_getres 44 .size __kernel_clock_getres,.-__kernel_clock_getres
diff --git a/arch/s390/kernel/vdso64/clock_gettime.S b/arch/s390/kernel/vdso64/clock_gettime.S
index f40467884a03..d46c95ed5f19 100644
--- a/arch/s390/kernel/vdso64/clock_gettime.S
+++ b/arch/s390/kernel/vdso64/clock_gettime.S
@@ -20,11 +20,11 @@
20__kernel_clock_gettime: 20__kernel_clock_gettime:
21 .cfi_startproc 21 .cfi_startproc
22 larl %r5,_vdso_data 22 larl %r5,_vdso_data
23 cghi %r2,CLOCK_REALTIME 23 cghi %r2,__CLOCK_REALTIME
24 je 4f 24 je 4f
25 cghi %r2,-2 /* CLOCK_THREAD_CPUTIME_ID for this thread */ 25 cghi %r2,-2 /* CLOCK_THREAD_CPUTIME_ID for this thread */
26 je 9f 26 je 9f
27 cghi %r2,CLOCK_MONOTONIC 27 cghi %r2,__CLOCK_MONOTONIC
28 jne 12f 28 jne 12f
29 29
30 /* CLOCK_MONOTONIC */ 30 /* CLOCK_MONOTONIC */