diff options
author | Jiang Yunhong <yunhong.jiang@intel.com> | 2011-12-26 14:47:33 +0800 |
---|---|---|
committer | Jean-Baptiste Queru <jbq@google.com> | 2012-01-12 08:51:07 -0800 |
commit | a9fd5a1492276fe429eab8527fc425cee5c62ed8 (patch) | |
tree | 2d99fcaf4c75746bd68247efab92e4946775a291 /qemu_debug.h | |
parent | aa1af37d8b3c3a21eb4cac4a225225425b50d08c (diff) | |
download | external_qemu-a9fd5a1492276fe429eab8527fc425cee5c62ed8.zip external_qemu-a9fd5a1492276fe429eab8527fc425cee5c62ed8.tar.gz external_qemu-a9fd5a1492276fe429eab8527fc425cee5c62ed8.tar.bz2 |
Fix signal handling for GS_RESTORE hack
Currently we hack QEMU's signal handler because of the GS_BASE MSR KVM bug.
The reason of the hack is, when signal happens during KVM_RUN ioctl, the
GS_BASE is broken, we have to restore the correct gs before run the signal
handler.
However, currently we take signal even when signal is set as SIG_DFL/SIG_IGN,
or the signal is set with SIG_SIGINFO. Currently "kill -13" to emulator causes
emulator crash.
This patch fixed it as:
1) If the signal handler is set as SIG_DFL or SIG_IGN, we don't take the signal
2) If the signal handler is set with SIG_SIGINFO, we will use sa_sigaction
3) Cover all potential signals
One thing left is, if the signal handler is setup dynamically, this method may
still have issue because currently the signal handlers are taken statically
when first KVM_RUN ioctl. Luckily this does not happen now.
Change-Id: Icfbe43db665a11f2b6eaf9593075b3e643783ee7
Signed-off-by: Jiang Yunhong <yunhong.jiang@intel.com>
Diffstat (limited to 'qemu_debug.h')
0 files changed, 0 insertions, 0 deletions