Commit 4f8eb8daebd72bdc214c63a3b2577f95bbadb27d
1 parent
bd464c2e
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
Showing
2 changed files
with
7 additions
and
7 deletions
hw/pxa2xx_keypad.c
@@ -332,8 +332,6 @@ struct pxa2xx_keypad_s *pxa27x_keypad_init(target_phys_addr_t base, | @@ -332,8 +332,6 @@ struct pxa2xx_keypad_s *pxa27x_keypad_init(target_phys_addr_t base, | ||
332 | void pxa27x_register_keypad(struct pxa2xx_keypad_s *kp, struct keymap *map, | 332 | void pxa27x_register_keypad(struct pxa2xx_keypad_s *kp, struct keymap *map, |
333 | int size) | 333 | int size) |
334 | { | 334 | { |
335 | - kp->map = (struct keymap *) qemu_mallocz(sizeof(struct keymap) * size); | ||
336 | - | ||
337 | if(!map || size < 0x80) { | 335 | if(!map || size < 0x80) { |
338 | fprintf(stderr, "%s - No PXA keypad map defined\n", __FUNCTION__); | 336 | fprintf(stderr, "%s - No PXA keypad map defined\n", __FUNCTION__); |
339 | exit(-1); | 337 | exit(-1); |
vl.c
@@ -1186,13 +1186,15 @@ static void host_alarm_handler(int host_signum) | @@ -1186,13 +1186,15 @@ static void host_alarm_handler(int host_signum) | ||
1186 | #endif | 1186 | #endif |
1187 | CPUState *env = next_cpu; | 1187 | CPUState *env = next_cpu; |
1188 | 1188 | ||
1189 | - /* stop the currently executing cpu because a timer occured */ | ||
1190 | - cpu_interrupt(env, CPU_INTERRUPT_EXIT); | 1189 | + if (env) { |
1190 | + /* stop the currently executing cpu because a timer occured */ | ||
1191 | + cpu_interrupt(env, CPU_INTERRUPT_EXIT); | ||
1191 | #ifdef USE_KQEMU | 1192 | #ifdef USE_KQEMU |
1192 | - if (env->kqemu_enabled) { | ||
1193 | - kqemu_cpu_interrupt(env); | ||
1194 | - } | 1193 | + if (env->kqemu_enabled) { |
1194 | + kqemu_cpu_interrupt(env); | ||
1195 | + } | ||
1195 | #endif | 1196 | #endif |
1197 | + } | ||
1196 | event_pending = 1; | 1198 | event_pending = 1; |
1197 | } | 1199 | } |
1198 | } | 1200 | } |