sstc function incorrectly checks for avaibility of env->rdtime_fn. This causes it to fail each time it's called because rdtime_fn is setup later in the procedure (when timer devices are created). This prevents stimecmp's addition to gdb.
This change ensures only the riscv_cpu_cfg(env) check is done. rdtime_fn will always be NULL otherwise and fail. Resolves: https://gitlab.com/qemu-project/qemu/-/work_items/3496 Signed-off-by: Abhigyan Kumar <[email protected]> --- target/riscv/csr.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/riscv/csr.c b/target/riscv/csr.c index f5b0895fd..d72df945f 100644 --- a/target/riscv/csr.c +++ b/target/riscv/csr.c @@ -590,7 +590,7 @@ static RISCVException sstc(CPURISCVState *env, int csrno) { bool hmode_check = false; - if (!riscv_cpu_cfg(env)->ext_sstc || !env->rdtime_fn) { + if (!riscv_cpu_cfg(env)->ext_sstc) { return RISCV_EXCP_ILLEGAL_INST; } -- 2.54.0
