Fix deadlock on thread->times_update in getrusage()

Set thread->in_kernel properly on exiting interrupt handler when entering
it from kernel mode.

Conflicts:
	arch/x86_64/kernel/cpu.c
	kernel/mem.c
This commit is contained in:
Masamichi Takagi
2018-03-06 13:23:03 +09:00
parent 7b4de6e6c2
commit 06b1b4f8ab
3 changed files with 8 additions and 5 deletions

View File

@@ -1225,7 +1225,7 @@ out:
check_need_resched();
check_signal(0, regs, 0);
}
set_cputime(0);
set_cputime(interrupt_from_user(regs)? 0: 1);
#ifdef PROFILE_ENABLE
if (thread->profile)
profile_event_add(PROFILE_page_fault, (rdtsc() - t_s));