[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] 3/5: Bugfix needed for FreeBSD/amd64 guests
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH] 3/5: Bugfix needed for FreeBSD/amd64 guests |
Date: |
Tue, 14 Oct 2008 12:06:11 +0200 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
On Wed, Oct 01, 2008 at 08:38:39PM +0200, Juergen Lock wrote:
> This was originally posted as:
>
> http://www.nabble.com/-PATCH--i386-hard-interrupt-generation-bug-fix-p14921171.html
If I understand correctly, the problem appears when running
FreeBSD/amd64 as a guest. Could you please give more details about that?
(FreeBSD version, how to reproduce the problem, symptoms).
Thanks.
> 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>
>
>
>
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' address@hidden | address@hidden
`- people.debian.org/~aurel32 | www.aurel32.net