[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] gdbstub: Set current_cpu for memory read write
From: |
Bin Meng |
Subject: |
[PATCH 1/2] gdbstub: Set current_cpu for memory read write |
Date: |
Tue, 22 Mar 2022 23:42:12 +0800 |
When accessing the per-CPU register bank of some devices (e.g.: GIC)
from the GDB stub context, a segfault occurs. This is due to current_cpu
is not set, as the contect is not a guest CPU.
Let's set current_cpu before doing the acutal memory read write.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/124
Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
---
gdbstub.c | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/gdbstub.c b/gdbstub.c
index 3c14c6a038..0b12b98fbc 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -66,6 +66,9 @@ static inline int target_memory_rw_debug(CPUState *cpu,
target_ulong addr,
uint8_t *buf, int len, bool is_write)
{
CPUClass *cc;
+ int ret;
+
+ current_cpu = cpu;
#ifndef CONFIG_USER_ONLY
if (phy_memory_mode) {
@@ -74,15 +77,21 @@ static inline int target_memory_rw_debug(CPUState *cpu,
target_ulong addr,
} else {
cpu_physical_memory_read(addr, buf, len);
}
- return 0;
+ ret = 0;
+ goto done;
}
#endif
cc = CPU_GET_CLASS(cpu);
if (cc->memory_rw_debug) {
- return cc->memory_rw_debug(cpu, addr, buf, len, is_write);
+ ret = cc->memory_rw_debug(cpu, addr, buf, len, is_write);
+ goto done;
}
- return cpu_memory_rw_debug(cpu, addr, buf, len, is_write);
+ ret = cpu_memory_rw_debug(cpu, addr, buf, len, is_write);
+
+done:
+ current_cpu = NULL;
+ return ret;
}
/* Return the GDB index for a given vCPU state.
--
2.25.1
- [PATCH 1/2] gdbstub: Set current_cpu for memory read write,
Bin Meng <=
- [PATCH 2/2] monitor/misc: Set current_cpu for memory dump, Bin Meng, 2022/03/22
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Peter Maydell, 2022/03/22
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Philippe Mathieu-Daudé, 2022/03/22
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Bin Meng, 2022/03/23
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Alex Bennée, 2022/03/24
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Peter Maydell, 2022/03/24
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Bin Meng, 2022/03/27
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Peter Maydell, 2022/03/28
- Re: [PATCH 1/2] gdbstub: Set current_cpu for memory read write, Bin Meng, 2022/03/29