From patchwork Tue Apr 3 15:36:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Kiszka X-Patchwork-Id: 894659 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40FtbR63g1z9ryk for ; Wed, 4 Apr 2018 01:40:51 +1000 (AEST) Received: from localhost ([::1]:43696 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3O3F-0002yg-Rl for incoming@patchwork.ozlabs.org; Tue, 03 Apr 2018 11:40:49 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38221) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f3NzD-0008Vo-QV for qemu-devel@nongnu.org; Tue, 03 Apr 2018 11:36:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f3NzD-0008CR-0f for qemu-devel@nongnu.org; Tue, 03 Apr 2018 11:36:39 -0400 Received: from mout.web.de ([212.227.15.3]:42819) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1f3NzC-0008B9-OQ for qemu-devel@nongnu.org; Tue, 03 Apr 2018 11:36:38 -0400 Received: from md1f2u6c.ww002.siemens.net ([92.77.50.102]) by smtp.web.de (mrweb004 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MGlGr-1fGKGf364v-00DWAA; Tue, 03 Apr 2018 17:36:24 +0200 From: Jan Kiszka To: qemu-devel , Paolo Bonzini , Richard Henderson , Eduardo Habkost Date: Tue, 3 Apr 2018 17:36:12 +0200 Message-Id: <37939b244dda0e9cccf96ce50f2b15df1e48315d.1522769774.git.jan.kiszka@web.de> X-Mailer: git-send-email 2.13.6 In-Reply-To: References: In-Reply-To: References: X-Provags-ID: V03:K0:LjEpBn2awL6G8jtLrMVgG99aD2PWx4NaCaqDjRUUdA/rJPCPIdG XhjxxfLIFDR2SuF9gxVTJ6CCpn1UVhac7eYmpMdE1fArNV5tXqawNBcs123cKqHSQLX+VUA /Zb8HLi5aGP17zr3M+2TKr8SfCSb/NXDZBM8BF7xBBhxGf1puW/K7UyKZpfr5/5kQwOzsd1 XrUNJAzR/DfLEcpb+GcQw== X-UI-Out-Filterresults: notjunk:1; V01:K0:iCugiP1hCC8=:I8wFIy+OhFoAS9q1han0RN nb9r+2zrHoggj369tZrIYJmwot20KV4own2iBqp73yNYrqvqP67OxCBIqCfDpDlO0Sx6UgmLf Trc9zHK5JuYVa6DwDVHV2sDPmONaox5pZLhVbHeCiYM/wi66QClpQMS1v52tQ4TGzxeqfjBTO 6K7DtBUZJQIwLo5lRkrNEqrvDbrPHqjrOCpIx+pkzW2d3nD2dC+wNwmvuHIqG0utsD2WhBodQ JFBRGoa/WM1IC8my7KDiJekzDBSUBjxhR7LdJFjvntPTZ55abOWJPbdLeJTpyu3XnwO0R0Ehf CMj1RcDDXN6wXZ0RtnWGArWh0NY8TjMIr7fKZoQtvgm5aTl56SR5fexVD3u/bCmtPhPXGPY2x PXi5IdHq5/+eRIzxLGlEdPrIg5ZO6RG+1SWBvtcygTpZ9rIurEIh/NDW0wtiKLFFhrlejG3vO gQjynGp+rYB+A4R8xTCMKR9DnpJQmCNP19DZSZMnvVdDyh8LrndCIVuBr76oEwSjy8KayqpKR wMk7rBiqRS4E4SB/hdsg4eROH2bSG8XTDCH92NlWOQfd/wyWWjaem9H5cj0kXtOgkACBO14zr skVvh7Y/kVdjJVfAS3TQtO/A5gXTEfY0RCdfXJwYfeiobQj9xEGrIjuAZXUj3I8qHFa0kTom0 FW1fZZwB5kqRayRDA5O1lmmdBcQGrASpyK8e7OUOTcCtNX1vHrhPkD9824mo4rrTzHipyadMb jtH0K9kQToW2C1uYlLk5IywIeguH7h28GquHLY3UXWnEs67r3RfYGreZWkIB4/tmS8GY7grA3 fMumyTpEx08m52KBttxApvwTDLWMg== X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.3 Subject: [Qemu-devel] [PATCH v2 2/4] target-i386: Allow interrupt injection after STGI X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Valentine Sinitsyn Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" From: Jan Kiszka We need to terminate the translation block after STGI so that pending interrupts can be injected. This fixes pending NMI injection for Jailhouse which uses "stgi; clgi" to open a brief injection window. Signed-off-by: Jan Kiszka --- target/i386/translate.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/i386/translate.c b/target/i386/translate.c index 0135415d92..71d97876c7 100644 --- a/target/i386/translate.c +++ b/target/i386/translate.c @@ -7450,8 +7450,9 @@ static target_ulong disas_insn(DisasContext *s, CPUState *cpu) break; } gen_update_cc_op(s); - gen_jmp_im(pc_start - s->cs_base); gen_helper_stgi(cpu_env); + gen_jmp_im(s->pc - s->cs_base); + gen_eob(s); break; case 0xdd: /* CLGI */