On Fri, Jan 10, 2020 at 12:13:42PM -0300, Fabiano Rosas wrote: > The kvm_handle_debug function can return 0 to go back into the guest > or return 1 to notify the gdbstub thread and pass control to GDB. > > Signed-off-by: Fabiano Rosas Good change regardless of the rest of the series. Applied to ppc-for-5.0. > --- > target/ppc/kvm.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c > index d1c334f0e3..0bd4a8d399 100644 > --- a/target/ppc/kvm.c > +++ b/target/ppc/kvm.c > @@ -53,6 +53,9 @@ > > #define PROC_DEVTREE_CPU "/proc/device-tree/cpus/" > > +#define DEBUG_RETURN_GUEST 0 > +#define DEBUG_RETURN_GDB 1 > + > const KVMCapabilityInfo kvm_arch_required_capabilities[] = { > KVM_CAP_LAST_INFO > }; > @@ -1570,7 +1573,7 @@ void kvm_arch_update_guest_debug(CPUState *cs, struct kvm_guest_debug *dbg) > static int kvm_handle_hw_breakpoint(CPUState *cs, > struct kvm_debug_exit_arch *arch_info) > { > - int handle = 0; > + int handle = DEBUG_RETURN_GUEST; > int n; > int flag = 0; > > @@ -1578,13 +1581,13 @@ static int kvm_handle_hw_breakpoint(CPUState *cs, > if (arch_info->status & KVMPPC_DEBUG_BREAKPOINT) { > n = find_hw_breakpoint(arch_info->address, GDB_BREAKPOINT_HW); > if (n >= 0) { > - handle = 1; > + handle = DEBUG_RETURN_GDB; > } > } else if (arch_info->status & (KVMPPC_DEBUG_WATCH_READ | > KVMPPC_DEBUG_WATCH_WRITE)) { > n = find_hw_watchpoint(arch_info->address, &flag); > if (n >= 0) { > - handle = 1; > + handle = DEBUG_RETURN_GDB; > cs->watchpoint_hit = &hw_watchpoint; > hw_watchpoint.vaddr = hw_debug_points[n].addr; > hw_watchpoint.flags = flag; > @@ -1596,12 +1599,12 @@ static int kvm_handle_hw_breakpoint(CPUState *cs, > > static int kvm_handle_singlestep(void) > { > - return 1; > + return DEBUG_RETURN_GDB; > } > > static int kvm_handle_sw_breakpoint(void) > { > - return 1; > + return DEBUG_RETURN_GDB; > } > > static int kvm_handle_debug(PowerPCCPU *cpu, struct kvm_run *run) > @@ -1653,7 +1656,7 @@ static int kvm_handle_debug(PowerPCCPU *cpu, struct kvm_run *run) > env->error_code = POWERPC_EXCP_INVAL; > ppc_cpu_do_interrupt(cs); > > - return 0; > + return DEBUG_RETURN_GUEST; > } > > int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson