From patchwork Tue Feb 15 08:23:25 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 83222 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 319ADB70A4 for ; Tue, 15 Feb 2011 19:59:26 +1100 (EST) Received: from localhost ([127.0.0.1]:53482 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PpGQ5-0001pj-Iv for incoming@patchwork.ozlabs.org; Tue, 15 Feb 2011 03:38:01 -0500 Received: from [140.186.70.92] (port=43373 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PpGCK-0005wI-9k for qemu-devel@nongnu.org; Tue, 15 Feb 2011 03:23:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PpGCH-0004GI-5P for qemu-devel@nongnu.org; Tue, 15 Feb 2011 03:23:47 -0500 Received: from david.siemens.de ([192.35.17.14]:26583) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PpGCG-0004FY-NJ for qemu-devel@nongnu.org; Tue, 15 Feb 2011 03:23:44 -0500 Received: from mail1.siemens.de (localhost [127.0.0.1]) by david.siemens.de (8.13.6/8.13.6) with ESMTP id p1F8Nc4o023990; Tue, 15 Feb 2011 09:23:38 +0100 Received: from mchn199C.mchp.siemens.de ([139.25.246.60]) by mail1.siemens.de (8.13.6/8.13.6) with ESMTP id p1F8Nb0l027686; Tue, 15 Feb 2011 09:23:38 +0100 From: Jan Kiszka To: Avi Kivity , Marcelo Tosatti Date: Tue, 15 Feb 2011 09:23:25 +0100 Message-Id: <996b79d835a834e277616f57dc9796e5b9a03b5c.1297758211.git.jan.kiszka@siemens.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Received-From: 192.35.17.14 Cc: Hidetoshi Seto , Jin Dongming , qemu-devel@nongnu.org, kvm@vger.kernel.org, Huang Ying Subject: [Qemu-devel] [PATCH 01/13] x86: Account for MCE in cpu_has_work X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org MCEs can be injected asynchronously, so they can also terminate the halt state. Signed-off-by: Jan Kiszka CC: Huang Ying CC: Hidetoshi Seto CC: Jin Dongming --- target-i386/exec.h | 15 ++++++--------- 1 files changed, 6 insertions(+), 9 deletions(-) diff --git a/target-i386/exec.h b/target-i386/exec.h index fc8945b..d050dd0 100644 --- a/target-i386/exec.h +++ b/target-i386/exec.h @@ -293,15 +293,12 @@ static inline void load_eflags(int eflags, int update_mask) static inline int cpu_has_work(CPUState *env) { - int work; - - work = (env->interrupt_request & CPU_INTERRUPT_HARD) && - (env->eflags & IF_MASK); - work |= env->interrupt_request & CPU_INTERRUPT_NMI; - work |= env->interrupt_request & CPU_INTERRUPT_INIT; - work |= env->interrupt_request & CPU_INTERRUPT_SIPI; - - return work; + return ((env->interrupt_request & CPU_INTERRUPT_HARD) && + (env->eflags & IF_MASK)) || + (env->interrupt_request & (CPU_INTERRUPT_NMI | + CPU_INTERRUPT_INIT | + CPU_INTERRUPT_SIPI | + CPU_INTERRUPT_MCE)); } static inline int cpu_halted(CPUState *env) {