[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [Bug 1757363] Re: infinite loop due to improper deal with "
From: |
Philippe Mathieu-Daudé |
Subject: |
[Qemu-devel] [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32 |
Date: |
Mon, 04 Jun 2018 20:04:48 -0000 |
What model/cpu is your router?
Which MIPS guest CPU are you using? Are you sure it matches the CPU of
your router?
Is your tplink firmware publicly available? (to reproduce your problem).
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1757363
Title:
infinite loop due to improper deal with "eret" on mips32
Status in QEMU:
New
Bug description:
1.qemu 2.9.1 release on the official web build with tcg
2.cmd: qemu-system-mips -kernel kernelfile
3. host: ubuntu 16.04.1 with linux kernel 4.6.2 x86_64
guest: mips bigendian 32bit (tplink firmware)
detail:
static inline void exception_return(CPUMIPSState *env)
{
debug_pre_eret(env);
if (env->CP0_Status & (1 << CP0St_ERL)) {
set_pc(env, env->CP0_ErrorEPC);
env->CP0_Status &= ~(1 << CP0St_ERL);
} else {
set_pc(env, env->CP0_EPC);
env->CP0_Status &= ~(1 << CP0St_EXL);====================> ISSUE????
}
compute_hflags(env);
debug_post_eret(env);
}
void helper_eret(CPUMIPSState *env)
{
exception_return(env);
env->lladdr = 1;
}
In the Issue Line, there is no check CP0_Status whether int is disabled
(should not enter int routine),
that result in the cpu can not jump out the int routine.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1757363/+subscriptions
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32,
Philippe Mathieu-Daudé <=