[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] 3/5: Bugfix needed for FreeBSD/amd64 guests
From: |
Juergen Lock |
Subject: |
[Qemu-devel] [PATCH] 3/5: Bugfix needed for FreeBSD/amd64 guests |
Date: |
Wed, 1 Oct 2008 20:38:39 +0200 |
User-agent: |
Mutt/1.5.17 (2007-11-01) |
This was originally posted as:
http://www.nabble.com/-PATCH--i386-hard-interrupt-generation-bug-fix-p14921171.html
Index: qemu/cpu-exec.c
@@ -394,16 +394,18 @@
(env->eflags & IF_MASK &&
!(env->hflags & HF_INHIBIT_IRQ_MASK)))))
{
int intno;
- svm_check_intercept(SVM_EXIT_INTR);
env->interrupt_request &= ~(CPU_INTERRUPT_HARD |
CPU_INTERRUPT_VIRQ);
intno = cpu_get_pic_interrupt(env);
- if (loglevel & CPU_LOG_TB_IN_ASM) {
- fprintf(logfile, "Servicing hardware
INT=0x%02x\n", intno);
+ if (intno>=0) {
+ svm_check_intercept(SVM_EXIT_INTR);
+ if (loglevel & CPU_LOG_TB_IN_ASM) {
+ fprintf(logfile, "Servicing hardware
INT=0x%02x\n", intno);
+ }
+ do_interrupt(intno, 0, 0, 0, 1);
+ /* ensure that no TB jump will be modified as
+ the program flow was changed */
+ next_tb = 0;
}
- do_interrupt(intno, 0, 0, 0, 1);
- /* ensure that no TB jump will be modified as
- the program flow was changed */
- next_tb = 0;
#if !defined(CONFIG_USER_ONLY)
} else if ((interrupt_request & CPU_INTERRUPT_VIRQ) &&
(env->eflags & IF_MASK) &&
Signed-off-by: Juergen Lock <address@hidden>
- [Qemu-devel] [PATCH] 3/5: Bugfix needed for FreeBSD/amd64 guests,
Juergen Lock <=