@@ -85,7 +85,8 @@ void context_tracking_user_enter(enum ctx_state state)
* user_exit() or rcu_irq_enter(). Let's remove RCU's dependency
* on the tick.
*/
- vtime_user_enter(current);
+ if (state == IN_USER)
+ vtime_user_enter(current);
rcu_user_enter();
}
/*
@@ -136,7 +137,8 @@ void context_tracking_user_exit(enum ctx_state state)
* RCU core about that (ie: we may need the tick again).
*/
rcu_user_exit();
- vtime_user_exit(current);
+ if (state == IN_USER)
+ vtime_user_exit(current);
trace_user_exit(0);
}
__this_cpu_write(context_tracking.state, IN_KERNEL);