2
0
Эх сурвалжийг харах

Work around a crash when timer signal occurs before main loop, original patch by 武田 俊也.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3820 c046a42c-6fe2-441c-8c8c-71466251a162
balrog 17 жил өмнө
parent
commit
4f8eb8daeb
2 өөрчлөгдсөн 7 нэмэгдсэн , 7 устгасан
  1. 0 2
      hw/pxa2xx_keypad.c
  2. 7 5
      vl.c

+ 0 - 2
hw/pxa2xx_keypad.c

@@ -332,8 +332,6 @@ struct pxa2xx_keypad_s *pxa27x_keypad_init(target_phys_addr_t base,
 void pxa27x_register_keypad(struct pxa2xx_keypad_s *kp, struct keymap *map,
 void pxa27x_register_keypad(struct pxa2xx_keypad_s *kp, struct keymap *map,
         int size)
         int size)
 {
 {
-    kp->map = (struct keymap *) qemu_mallocz(sizeof(struct keymap) * size);
-
     if(!map || size < 0x80) {
     if(!map || size < 0x80) {
         fprintf(stderr, "%s - No PXA keypad map defined\n", __FUNCTION__);
         fprintf(stderr, "%s - No PXA keypad map defined\n", __FUNCTION__);
         exit(-1);
         exit(-1);

+ 7 - 5
vl.c

@@ -1186,13 +1186,15 @@ static void host_alarm_handler(int host_signum)
 #endif
 #endif
         CPUState *env = next_cpu;
         CPUState *env = next_cpu;
 
 
-        /* stop the currently executing cpu because a timer occured */
-        cpu_interrupt(env, CPU_INTERRUPT_EXIT);
+        if (env) {
+            /* stop the currently executing cpu because a timer occured */
+            cpu_interrupt(env, CPU_INTERRUPT_EXIT);
 #ifdef USE_KQEMU
 #ifdef USE_KQEMU
-        if (env->kqemu_enabled) {
-            kqemu_cpu_interrupt(env);
-        }
+            if (env->kqemu_enabled) {
+                kqemu_cpu_interrupt(env);
+            }
 #endif
 #endif
+        }
         event_pending = 1;
         event_pending = 1;
     }
     }
 }
 }