diff options
| -rw-r--r-- | arch/s390/include/asm/thread_info.h | 3 | ||||
| -rw-r--r-- | arch/s390/kernel/process.c | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/arch/s390/include/asm/thread_info.h b/arch/s390/include/asm/thread_info.h index 83ba57533ce6..3c883c368eb0 100644 --- a/arch/s390/include/asm/thread_info.h +++ b/arch/s390/include/asm/thread_info.h | |||
| @@ -45,6 +45,9 @@ struct thread_info { | |||
| 45 | void arch_release_task_struct(struct task_struct *tsk); | 45 | void arch_release_task_struct(struct task_struct *tsk); |
| 46 | int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); | 46 | int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src); |
| 47 | 47 | ||
| 48 | void arch_setup_new_exec(void); | ||
| 49 | #define arch_setup_new_exec arch_setup_new_exec | ||
| 50 | |||
| 48 | #endif | 51 | #endif |
| 49 | 52 | ||
| 50 | /* | 53 | /* |
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c index 70576a2f69cf..6e758bb6cd29 100644 --- a/arch/s390/kernel/process.c +++ b/arch/s390/kernel/process.c | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | #include <linux/random.h> | 29 | #include <linux/random.h> |
| 30 | #include <linux/export.h> | 30 | #include <linux/export.h> |
| 31 | #include <linux/init_task.h> | 31 | #include <linux/init_task.h> |
| 32 | #include <asm/cpu_mf.h> | ||
| 32 | #include <asm/io.h> | 33 | #include <asm/io.h> |
| 33 | #include <asm/processor.h> | 34 | #include <asm/processor.h> |
| 34 | #include <asm/vtimer.h> | 35 | #include <asm/vtimer.h> |
| @@ -48,6 +49,15 @@ void flush_thread(void) | |||
| 48 | { | 49 | { |
| 49 | } | 50 | } |
| 50 | 51 | ||
| 52 | void arch_setup_new_exec(void) | ||
| 53 | { | ||
| 54 | if (S390_lowcore.current_pid != current->pid) { | ||
| 55 | S390_lowcore.current_pid = current->pid; | ||
| 56 | if (test_facility(40)) | ||
| 57 | lpp(&S390_lowcore.lpp); | ||
| 58 | } | ||
| 59 | } | ||
| 60 | |||
| 51 | void arch_release_task_struct(struct task_struct *tsk) | 61 | void arch_release_task_struct(struct task_struct *tsk) |
| 52 | { | 62 | { |
| 53 | runtime_instr_release(tsk); | 63 | runtime_instr_release(tsk); |
