|
@@ -4352,8 +4352,13 @@ int kvm_arch_remove_sw_breakpoint(CPUState *cs, struct kvm_sw_breakpoint *bp)
|
|
{
|
|
{
|
|
uint8_t int3;
|
|
uint8_t int3;
|
|
|
|
|
|
- if (cpu_memory_rw_debug(cs, bp->pc, &int3, 1, 0) || int3 != 0xcc ||
|
|
|
|
- cpu_memory_rw_debug(cs, bp->pc, (uint8_t *)&bp->saved_insn, 1, 1)) {
|
|
|
|
|
|
+ if (cpu_memory_rw_debug(cs, bp->pc, &int3, 1, 0)) {
|
|
|
|
+ return -EINVAL;
|
|
|
|
+ }
|
|
|
|
+ if (int3 != 0xcc) {
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ if (cpu_memory_rw_debug(cs, bp->pc, (uint8_t *)&bp->saved_insn, 1, 1)) {
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|