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 | 332 | void pxa27x_register_keypad(struct pxa2xx_keypad_s *kp, struct keymap *map, |
| 333 | 333 | int size) |
| 334 | 334 | { |
| 335 | - kp->map = (struct keymap *) qemu_mallocz(sizeof(struct keymap) * size); | |
| 336 | - | |
| 337 | 335 | if(!map || size < 0x80) { |
| 338 | 336 | fprintf(stderr, "%s - No PXA keypad map defined\n", __FUNCTION__); |
| 339 | 337 | exit(-1); | ... | ... |
vl.c
| ... | ... | @@ -1186,13 +1186,15 @@ static void host_alarm_handler(int host_signum) |
| 1186 | 1186 | #endif |
| 1187 | 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 | 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 | 1196 | #endif |
| 1197 | + } | |
| 1196 | 1198 | event_pending = 1; |
| 1197 | 1199 | } |
| 1198 | 1200 | } | ... | ... |