|
@@ -20,25 +20,6 @@ struct context_tracking {
|
|
|
} state;
|
|
|
};
|
|
|
|
|
|
-static inline void __guest_enter(void)
|
|
|
-{
|
|
|
- /*
|
|
|
- * This is running in ioctl context so we can avoid
|
|
|
- * the call to vtime_account() with its unnecessary idle check.
|
|
|
- */
|
|
|
- vtime_account_system(current);
|
|
|
- current->flags |= PF_VCPU;
|
|
|
-}
|
|
|
-
|
|
|
-static inline void __guest_exit(void)
|
|
|
-{
|
|
|
- /*
|
|
|
- * This is running in ioctl context so we can avoid
|
|
|
- * the call to vtime_account() with its unnecessary idle check.
|
|
|
- */
|
|
|
- vtime_account_system(current);
|
|
|
- current->flags &= ~PF_VCPU;
|
|
|
-}
|
|
|
|
|
|
#ifdef CONFIG_CONTEXT_TRACKING
|
|
|
DECLARE_PER_CPU(struct context_tracking, context_tracking);
|
|
@@ -56,9 +37,6 @@ static inline bool context_tracking_active(void)
|
|
|
extern void user_enter(void);
|
|
|
extern void user_exit(void);
|
|
|
|
|
|
-extern void guest_enter(void);
|
|
|
-extern void guest_exit(void);
|
|
|
-
|
|
|
static inline enum ctx_state exception_enter(void)
|
|
|
{
|
|
|
enum ctx_state prev_ctx;
|
|
@@ -81,21 +59,35 @@ extern void context_tracking_task_switch(struct task_struct *prev,
|
|
|
static inline bool context_tracking_in_user(void) { return false; }
|
|
|
static inline void user_enter(void) { }
|
|
|
static inline void user_exit(void) { }
|
|
|
+static inline enum ctx_state exception_enter(void) { return 0; }
|
|
|
+static inline void exception_exit(enum ctx_state prev_ctx) { }
|
|
|
+static inline void context_tracking_task_switch(struct task_struct *prev,
|
|
|
+ struct task_struct *next) { }
|
|
|
+#endif /* !CONFIG_CONTEXT_TRACKING */
|
|
|
|
|
|
+#ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
|
|
|
+extern void guest_enter(void);
|
|
|
+extern void guest_exit(void);
|
|
|
+#else
|
|
|
static inline void guest_enter(void)
|
|
|
{
|
|
|
- __guest_enter();
|
|
|
+ /*
|
|
|
+ * This is running in ioctl context so we can avoid
|
|
|
+ * the call to vtime_account() with its unnecessary idle check.
|
|
|
+ */
|
|
|
+ vtime_account_system(current);
|
|
|
+ current->flags |= PF_VCPU;
|
|
|
}
|
|
|
|
|
|
static inline void guest_exit(void)
|
|
|
{
|
|
|
- __guest_exit();
|
|
|
+ /*
|
|
|
+ * This is running in ioctl context so we can avoid
|
|
|
+ * the call to vtime_account() with its unnecessary idle check.
|
|
|
+ */
|
|
|
+ vtime_account_system(current);
|
|
|
+ current->flags &= ~PF_VCPU;
|
|
|
}
|
|
|
-
|
|
|
-static inline enum ctx_state exception_enter(void) { return 0; }
|
|
|
-static inline void exception_exit(enum ctx_state prev_ctx) { }
|
|
|
-static inline void context_tracking_task_switch(struct task_struct *prev,
|
|
|
- struct task_struct *next) { }
|
|
|
-#endif /* !CONFIG_CONTEXT_TRACKING */
|
|
|
+#endif /* CONFIG_VIRT_CPU_ACCOUNTING_GEN */
|
|
|
|
|
|
#endif
|