infinite loop due to improper deal with "eret" on mips32
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
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_
{
debug_
if (env->CP0_Status & (1 << CP0St_ERL)) {
set_pc(env, env->CP0_ErrorEPC);
} else {
set_pc(env, env->CP0_EPC);
}
compute_
debug_
}
void helper_
{
exception_
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.
tags: | added: mips |
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).