From 6626204c99b442f35eb4890487829da119b0bb66 Mon Sep 17 00:00:00 2001 From: "Shiratori, Takehiro" Date: Wed, 17 Oct 2018 14:44:27 +0900 Subject: [PATCH] set_cputime(): interrupt enable/disable fix. Check interrupt enabled state in set_cputime() instead of enabling them unconditionally on exit. Change-Id: I99212855f33f5535f67f045665bf5e025c55b690 Fujitsu: POSTK_DEBUG_TEMP_FIX_98 --- kernel/syscall.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/syscall.c b/kernel/syscall.c index 6f3e698f..2464fa0d 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -9581,6 +9581,7 @@ set_cputime(int mode) unsigned long tsc; struct cpu_local_var *v; struct ihk_os_cpu_monitor *monitor; + unsigned long irq_flags = 0; if(clv == NULL) return; @@ -9604,7 +9605,7 @@ set_cputime(int mode) return; } - cpu_disable_interrupt(); + irq_flags = cpu_disable_interrupt_save(); tsc = rdtsc(); if(thread->base_tsc != 0){ unsigned long dtsc = tsc - thread->base_tsc; @@ -9685,7 +9686,7 @@ set_cputime(int mode) } } } - cpu_enable_interrupt(); + cpu_restore_interrupt(irq_flags); } long syscall(int num, ihk_mc_user_context_t *ctx)