@@ -781,6 +781,9 @@ static inline bool cpu_handle_exception(CPUState *cpu, int *ret)
static inline bool icount_exit_request(CPUState *cpu)
{
+#if defined(CONFIG_USER_ONLY)
+ return false;
+#else
if (!icount_enabled()) {
return false;
}
@@ -788,6 +791,7 @@ static inline bool icount_exit_request(CPUState *cpu)
return false;
}
return cpu->neg.icount_decr.u16.low + cpu->icount_extra == 0;
+#endif
}
static inline bool cpu_handle_interrupt(CPUState *cpu,
@@ -802,12 +806,14 @@ static inline bool cpu_handle_interrupt(CPUState *cpu,
return false;
}
+#if !defined(CONFIG_USER_ONLY)
/* Clear the interrupt flag now since we're processing
* cpu->interrupt_request and cpu->exit_request.
* Ensure zeroing happens before reading cpu->exit_request or
* cpu->interrupt_request (see also smp_wmb in cpu_exit())
*/
qatomic_set_mb(&cpu->neg.icount_decr.u16.high, 0);
+#endif /* !CONFIG_USER_ONLY */
if (unlikely(qatomic_read(&cpu->interrupt_request))) {
int interrupt_request;