* [Qemu-devel] [Bug 1757363] [NEW] infinite loop due to improper deal with "eret" on mips32
@ 2018-03-21 8:38 dantachen
2018-03-21 15:46 ` [Qemu-devel] [Bug 1757363] " philmd
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: dantachen @ 2018-03-21 8:38 UTC (permalink / raw)
To: qemu-devel
Public bug reported:
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.
** Affects: qemu
Importance: Undecided
Status: New
--
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32
2018-03-21 8:38 [Qemu-devel] [Bug 1757363] [NEW] infinite loop due to improper deal with "eret" on mips32 dantachen
@ 2018-03-21 15:46 ` philmd
2018-06-04 20:04 ` Philippe Mathieu-Daudé
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: philmd @ 2018-03-21 15:46 UTC (permalink / raw)
To: qemu-devel
** 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32
2018-03-21 8:38 [Qemu-devel] [Bug 1757363] [NEW] infinite loop due to improper deal with "eret" on mips32 dantachen
2018-03-21 15:46 ` [Qemu-devel] [Bug 1757363] " philmd
@ 2018-06-04 20:04 ` Philippe Mathieu-Daudé
2020-11-17 11:08 ` Philippe Mathieu-Daudé
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-06-04 20:04 UTC (permalink / raw)
To: qemu-devel
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32
2018-03-21 8:38 [Qemu-devel] [Bug 1757363] [NEW] infinite loop due to improper deal with "eret" on mips32 dantachen
2018-03-21 15:46 ` [Qemu-devel] [Bug 1757363] " philmd
2018-06-04 20:04 ` Philippe Mathieu-Daudé
@ 2020-11-17 11:08 ` Philippe Mathieu-Daudé
2021-01-17 4:17 ` Launchpad Bug Tracker
2021-07-07 12:48 ` Alexey
4 siblings, 0 replies; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-11-17 11:08 UTC (permalink / raw)
To: qemu-devel
My guess is your router CPU doesn't match the ISA (likely your CPU has
extensions to the 24Kf ISA).
** Changed in: qemu
Status: New => Incomplete
--
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:
Incomplete
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32
2018-03-21 8:38 [Qemu-devel] [Bug 1757363] [NEW] infinite loop due to improper deal with "eret" on mips32 dantachen
` (2 preceding siblings ...)
2020-11-17 11:08 ` Philippe Mathieu-Daudé
@ 2021-01-17 4:17 ` Launchpad Bug Tracker
2021-07-07 12:48 ` Alexey
4 siblings, 0 replies; 6+ messages in thread
From: Launchpad Bug Tracker @ 2021-01-17 4:17 UTC (permalink / raw)
To: qemu-devel
[Expired for QEMU because there has been no activity for 60 days.]
** Changed in: qemu
Status: Incomplete => Expired
--
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:
Expired
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug 1757363] Re: infinite loop due to improper deal with "eret" on mips32
2018-03-21 8:38 [Qemu-devel] [Bug 1757363] [NEW] infinite loop due to improper deal with "eret" on mips32 dantachen
` (3 preceding siblings ...)
2021-01-17 4:17 ` Launchpad Bug Tracker
@ 2021-07-07 12:48 ` Alexey
4 siblings, 0 replies; 6+ messages in thread
From: Alexey @ 2021-07-07 12:48 UTC (permalink / raw)
To: qemu-devel
This seems to affect me too; I have a loop on interrupt handler after
the first interrupt called.
The version of qemu is latest 3.1 from upstream, so this is not Ubuntu
issue.
However, have you done with it? Just commenting out
env->CP0_Status &= ~(1 << CP0St_EXL);
does not help.
--
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:
Expired
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
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-07-07 12:57 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-21 8:38 [Qemu-devel] [Bug 1757363] [NEW] infinite loop due to improper deal with "eret" on mips32 dantachen
2018-03-21 15:46 ` [Qemu-devel] [Bug 1757363] " philmd
2018-06-04 20:04 ` Philippe Mathieu-Daudé
2020-11-17 11:08 ` Philippe Mathieu-Daudé
2021-01-17 4:17 ` Launchpad Bug Tracker
2021-07-07 12:48 ` Alexey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).