summary refs log tree commit diff stats
path: root/results/classifier/108/graphic/1757363
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/108/graphic/1757363')
-rw-r--r--results/classifier/108/graphic/175736369
1 files changed, 69 insertions, 0 deletions
diff --git a/results/classifier/108/graphic/1757363 b/results/classifier/108/graphic/1757363
new file mode 100644
index 00000000..1a92b865
--- /dev/null
+++ b/results/classifier/108/graphic/1757363
@@ -0,0 +1,69 @@
+graphic: 0.958
+other: 0.828
+performance: 0.819
+device: 0.779
+debug: 0.748
+network: 0.653
+permissions: 0.642
+semantic: 0.638
+PID: 0.589
+files: 0.528
+boot: 0.490
+vnc: 0.434
+socket: 0.412
+KVM: 0.371
+
+infinite loop due to improper deal with "eret" on mips32
+
+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.
+
+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).
+
+My guess is your router CPU doesn't match the ISA (likely your CPU has extensions to the 24Kf ISA).
+
+[Expired for QEMU because there has been no activity for 60 days.]
+
+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.
+