[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: |
philmd |
Subject: |
[Qemu-devel] [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32 |
Date: |
Wed, 21 Mar 2018 15:46:11 -0000 |
** Tags added: mips
--
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