aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/kernel/process.c')
-rw-r--r--arch/ia64/kernel/process.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 5c9efe626563..be6c6f7be027 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -163,6 +163,8 @@ void tsk_clear_notify_resume(struct task_struct *tsk)
163 if (tsk->thread.pfm_needs_checking) 163 if (tsk->thread.pfm_needs_checking)
164 return; 164 return;
165#endif 165#endif
166 if (test_ti_thread_flag(task_thread_info(tsk), TIF_RESTORE_RSE))
167 return;
166 clear_ti_thread_flag(task_thread_info(tsk), TIF_NOTIFY_RESUME); 168 clear_ti_thread_flag(task_thread_info(tsk), TIF_NOTIFY_RESUME);
167} 169}
168 170
@@ -184,6 +186,10 @@ do_notify_resume_user (sigset_t *unused, struct sigscratch *scr, long in_syscall
184 /* deal with pending signal delivery */ 186 /* deal with pending signal delivery */
185 if (test_thread_flag(TIF_SIGPENDING)||test_thread_flag(TIF_RESTORE_SIGMASK)) 187 if (test_thread_flag(TIF_SIGPENDING)||test_thread_flag(TIF_RESTORE_SIGMASK))
186 ia64_do_signal(scr, in_syscall); 188 ia64_do_signal(scr, in_syscall);
189
190 /* copy user rbs to kernel rbs */
191 if (unlikely(test_thread_flag(TIF_RESTORE_RSE)))
192 ia64_sync_krbs();
187} 193}
188 194
189static int pal_halt = 1; 195static int pal_halt = 1;