diff options
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/compat_wrapper.c | 1 | ||||
-rw-r--r-- | arch/s390/kernel/entry.S | 10 | ||||
-rw-r--r-- | arch/s390/kernel/ipl.c | 2 | ||||
-rw-r--r-- | arch/s390/kernel/process.c | 3 | ||||
-rw-r--r-- | arch/s390/kernel/syscalls.S | 2 | ||||
-rw-r--r-- | arch/s390/kernel/vtime.c | 2 |
6 files changed, 14 insertions, 6 deletions
diff --git a/arch/s390/kernel/compat_wrapper.c b/arch/s390/kernel/compat_wrapper.c index ae2cda5eee5a..e89cc2e71db1 100644 --- a/arch/s390/kernel/compat_wrapper.c +++ b/arch/s390/kernel/compat_wrapper.c | |||
@@ -178,3 +178,4 @@ COMPAT_SYSCALL_WRAP3(getpeername, int, fd, struct sockaddr __user *, usockaddr, | |||
178 | COMPAT_SYSCALL_WRAP6(sendto, int, fd, void __user *, buff, size_t, len, unsigned int, flags, struct sockaddr __user *, addr, int, addr_len); | 178 | COMPAT_SYSCALL_WRAP6(sendto, int, fd, void __user *, buff, size_t, len, unsigned int, flags, struct sockaddr __user *, addr, int, addr_len); |
179 | COMPAT_SYSCALL_WRAP3(mlock2, unsigned long, start, size_t, len, int, flags); | 179 | COMPAT_SYSCALL_WRAP3(mlock2, unsigned long, start, size_t, len, int, flags); |
180 | COMPAT_SYSCALL_WRAP6(copy_file_range, int, fd_in, loff_t __user *, off_in, int, fd_out, loff_t __user *, off_out, size_t, len, unsigned int, flags); | 180 | COMPAT_SYSCALL_WRAP6(copy_file_range, int, fd_in, loff_t __user *, off_in, int, fd_out, loff_t __user *, off_out, size_t, len, unsigned int, flags); |
181 | COMPAT_SYSCALL_WRAP5(statx, int, dfd, const char __user *, path, unsigned, flags, unsigned, mask, struct statx __user *, buffer); | ||
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index dff2152350a7..6a7d737d514c 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -490,7 +490,7 @@ ENTRY(pgm_check_handler) | |||
490 | jnz .Lpgm_svcper # -> single stepped svc | 490 | jnz .Lpgm_svcper # -> single stepped svc |
491 | 1: CHECK_STACK STACK_SIZE,__LC_SAVE_AREA_SYNC | 491 | 1: CHECK_STACK STACK_SIZE,__LC_SAVE_AREA_SYNC |
492 | aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE) | 492 | aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE) |
493 | j 3f | 493 | j 4f |
494 | 2: UPDATE_VTIME %r14,%r15,__LC_SYNC_ENTER_TIMER | 494 | 2: UPDATE_VTIME %r14,%r15,__LC_SYNC_ENTER_TIMER |
495 | lg %r15,__LC_KERNEL_STACK | 495 | lg %r15,__LC_KERNEL_STACK |
496 | lgr %r14,%r12 | 496 | lgr %r14,%r12 |
@@ -499,8 +499,8 @@ ENTRY(pgm_check_handler) | |||
499 | tm __LC_PGM_ILC+2,0x02 # check for transaction abort | 499 | tm __LC_PGM_ILC+2,0x02 # check for transaction abort |
500 | jz 3f | 500 | jz 3f |
501 | mvc __THREAD_trap_tdb(256,%r14),0(%r13) | 501 | mvc __THREAD_trap_tdb(256,%r14),0(%r13) |
502 | 3: la %r11,STACK_FRAME_OVERHEAD(%r15) | 502 | 3: stg %r10,__THREAD_last_break(%r14) |
503 | stg %r10,__THREAD_last_break(%r14) | 503 | 4: la %r11,STACK_FRAME_OVERHEAD(%r15) |
504 | stmg %r0,%r7,__PT_R0(%r11) | 504 | stmg %r0,%r7,__PT_R0(%r11) |
505 | mvc __PT_R8(64,%r11),__LC_SAVE_AREA_SYNC | 505 | mvc __PT_R8(64,%r11),__LC_SAVE_AREA_SYNC |
506 | stmg %r8,%r9,__PT_PSW(%r11) | 506 | stmg %r8,%r9,__PT_PSW(%r11) |
@@ -509,14 +509,14 @@ ENTRY(pgm_check_handler) | |||
509 | xc __PT_FLAGS(8,%r11),__PT_FLAGS(%r11) | 509 | xc __PT_FLAGS(8,%r11),__PT_FLAGS(%r11) |
510 | stg %r10,__PT_ARGS(%r11) | 510 | stg %r10,__PT_ARGS(%r11) |
511 | tm __LC_PGM_ILC+3,0x80 # check for per exception | 511 | tm __LC_PGM_ILC+3,0x80 # check for per exception |
512 | jz 4f | 512 | jz 5f |
513 | tmhh %r8,0x0001 # kernel per event ? | 513 | tmhh %r8,0x0001 # kernel per event ? |
514 | jz .Lpgm_kprobe | 514 | jz .Lpgm_kprobe |
515 | oi __PT_FLAGS+7(%r11),_PIF_PER_TRAP | 515 | oi __PT_FLAGS+7(%r11),_PIF_PER_TRAP |
516 | mvc __THREAD_per_address(8,%r14),__LC_PER_ADDRESS | 516 | mvc __THREAD_per_address(8,%r14),__LC_PER_ADDRESS |
517 | mvc __THREAD_per_cause(2,%r14),__LC_PER_CODE | 517 | mvc __THREAD_per_cause(2,%r14),__LC_PER_CODE |
518 | mvc __THREAD_per_paid(1,%r14),__LC_PER_ACCESS_ID | 518 | mvc __THREAD_per_paid(1,%r14),__LC_PER_ACCESS_ID |
519 | 4: REENABLE_IRQS | 519 | 5: REENABLE_IRQS |
520 | xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) | 520 | xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15) |
521 | larl %r1,pgm_check_table | 521 | larl %r1,pgm_check_table |
522 | llgh %r10,__PT_INT_CODE+2(%r11) | 522 | llgh %r10,__PT_INT_CODE+2(%r11) |
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c index b67dafb7b7cf..e545ffe5155a 100644 --- a/arch/s390/kernel/ipl.c +++ b/arch/s390/kernel/ipl.c | |||
@@ -564,6 +564,8 @@ static struct kset *ipl_kset; | |||
564 | 564 | ||
565 | static void __ipl_run(void *unused) | 565 | static void __ipl_run(void *unused) |
566 | { | 566 | { |
567 | if (MACHINE_IS_LPAR && ipl_info.type == IPL_TYPE_CCW) | ||
568 | diag308(DIAG308_LOAD_NORMAL_DUMP, NULL); | ||
567 | diag308(DIAG308_LOAD_CLEAR, NULL); | 569 | diag308(DIAG308_LOAD_CLEAR, NULL); |
568 | if (MACHINE_IS_VM) | 570 | if (MACHINE_IS_VM) |
569 | __cpcmd("IPL", NULL, 0, NULL); | 571 | __cpcmd("IPL", NULL, 0, NULL); |
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 20cd339e11ae..f29e41c5e2ec 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
@@ -124,7 +124,10 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long new_stackp, | |||
124 | clear_tsk_thread_flag(p, TIF_SINGLE_STEP); | 124 | clear_tsk_thread_flag(p, TIF_SINGLE_STEP); |
125 | /* Initialize per thread user and system timer values */ | 125 | /* Initialize per thread user and system timer values */ |
126 | p->thread.user_timer = 0; | 126 | p->thread.user_timer = 0; |
127 | p->thread.guest_timer = 0; | ||
127 | p->thread.system_timer = 0; | 128 | p->thread.system_timer = 0; |
129 | p->thread.hardirq_timer = 0; | ||
130 | p->thread.softirq_timer = 0; | ||
128 | 131 | ||
129 | frame->sf.back_chain = 0; | 132 | frame->sf.back_chain = 0; |
130 | /* new return point is ret_from_fork */ | 133 | /* new return point is ret_from_fork */ |
diff --git a/arch/s390/kernel/syscalls.S b/arch/s390/kernel/syscalls.S index 9b59e6212d8f..2659b5cfeddb 100644 --- a/arch/s390/kernel/syscalls.S +++ b/arch/s390/kernel/syscalls.S | |||
@@ -386,3 +386,5 @@ SYSCALL(sys_mlock2,compat_sys_mlock2) | |||
386 | SYSCALL(sys_copy_file_range,compat_sys_copy_file_range) /* 375 */ | 386 | SYSCALL(sys_copy_file_range,compat_sys_copy_file_range) /* 375 */ |
387 | SYSCALL(sys_preadv2,compat_sys_preadv2) | 387 | SYSCALL(sys_preadv2,compat_sys_preadv2) |
388 | SYSCALL(sys_pwritev2,compat_sys_pwritev2) | 388 | SYSCALL(sys_pwritev2,compat_sys_pwritev2) |
389 | NI_SYSCALL | ||
390 | SYSCALL(sys_statx,compat_sys_statx) | ||
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index c14fc9029912..072d84ba42a3 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -111,7 +111,7 @@ static inline u64 scale_vtime(u64 vtime) | |||
111 | } | 111 | } |
112 | 112 | ||
113 | static void account_system_index_scaled(struct task_struct *p, | 113 | static void account_system_index_scaled(struct task_struct *p, |
114 | cputime_t cputime, cputime_t scaled, | 114 | u64 cputime, u64 scaled, |
115 | enum cpu_usage_stat index) | 115 | enum cpu_usage_stat index) |
116 | { | 116 | { |
117 | p->stimescaled += cputime_to_nsecs(scaled); | 117 | p->stimescaled += cputime_to_nsecs(scaled); |