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.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/ia64/kernel/process.c b/arch/ia64/kernel/process.c
index 8bb571a8a738..d1c3ed9943e5 100644
--- a/arch/ia64/kernel/process.c
+++ b/arch/ia64/kernel/process.c
@@ -155,7 +155,7 @@ show_regs (struct pt_regs *regs)
155} 155}
156 156
157void 157void
158do_notify_resume_user (sigset_t *oldset, struct sigscratch *scr, long in_syscall) 158do_notify_resume_user (sigset_t *unused, struct sigscratch *scr, long in_syscall)
159{ 159{
160 if (fsys_mode(current, &scr->pt)) { 160 if (fsys_mode(current, &scr->pt)) {
161 /* defer signal-handling etc. until we return to privilege-level 0. */ 161 /* defer signal-handling etc. until we return to privilege-level 0. */
@@ -170,8 +170,8 @@ do_notify_resume_user (sigset_t *oldset, struct sigscratch *scr, long in_syscall
170#endif 170#endif
171 171
172 /* deal with pending signal delivery */ 172 /* deal with pending signal delivery */
173 if (test_thread_flag(TIF_SIGPENDING)) 173 if (test_thread_flag(TIF_SIGPENDING)||test_thread_flag(TIF_RESTORE_SIGMASK))
174 ia64_do_signal(oldset, scr, in_syscall); 174 ia64_do_signal(scr, in_syscall);
175} 175}
176 176
177static int pal_halt = 1; 177static int pal_halt = 1;
@@ -236,6 +236,7 @@ void cpu_idle_wait(void)
236{ 236{
237 unsigned int cpu, this_cpu = get_cpu(); 237 unsigned int cpu, this_cpu = get_cpu();
238 cpumask_t map; 238 cpumask_t map;
239 cpumask_t tmp = current->cpus_allowed;
239 240
240 set_cpus_allowed(current, cpumask_of_cpu(this_cpu)); 241 set_cpus_allowed(current, cpumask_of_cpu(this_cpu));
241 put_cpu(); 242 put_cpu();
@@ -257,6 +258,7 @@ void cpu_idle_wait(void)
257 } 258 }
258 cpus_and(map, map, cpu_online_map); 259 cpus_and(map, map, cpu_online_map);
259 } while (!cpus_empty(map)); 260 } while (!cpus_empty(map));
261 set_cpus_allowed(current, tmp);
260} 262}
261EXPORT_SYMBOL_GPL(cpu_idle_wait); 263EXPORT_SYMBOL_GPL(cpu_idle_wait);
262 264