From patchwork Tue Aug 27 13:07:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Dakinevich X-Patchwork-Id: 11116901 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DC45714DE for ; Tue, 27 Aug 2019 13:07:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AFD9E2189D for ; Tue, 27 Aug 2019 13:07:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="Ubt7/bPO" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726278AbfH0NHJ (ORCPT ); Tue, 27 Aug 2019 09:07:09 -0400 Received: from mail-eopbgr30119.outbound.protection.outlook.com ([40.107.3.119]:35904 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726170AbfH0NHG (ORCPT ); Tue, 27 Aug 2019 09:07:06 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=E9gtfSZk9QPeRHJrMrgZ4WFRMOUEvOSqGikHLrOQ4zR+atZB6TCIFN5nvFMMGj0+s+1zULE48HLM4nsM6SzWojHq6cR3sDe6jC9fZFUHVTKaMalfsiUWiXjaGLlUu6jEWkxCVwBNqrp6RjHOr+wN3EAwMlB+VawW/UIP909f7gf2QprsJFb7DIrn18835JvN7ypqUZWJC57pYrBLfKGZY9F2Yd1FqUsPBF1AbXGcG2iHoyiZ4PgooUUmBlYJsUWnz8pqvlSa0KRGAi8xmf/SlVXGVr3Cz2TvD+KSITWB4zW10nTSQ5kUxI7Rr47o7bSageNvE8ghzg0QkizpDBkc2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=svMO617yxV9WjSTdFYoLpdoZVKjKefsZQpgPhyC5Fp4=; b=MpudOCttzB2+S2WFE9mHf+5/c+xn85Z5vgNzRlvNaq+lSfqHJX4ZhfiWftdUOnUoiMeQ+2xtOMVjQnR6m+b1Ao4ACvqae/FbuBSXSmoP3JZBHj8n3mZjaWaFwd45lXv5mCwILkvucDuNV+x7SB0ZS2Gbpvjyau6rQ9D98aEZFbCCFCn4mMXSVjBGboYpzVQReBu6DCL0klhqYBpypS5+wfz2s7tz6bdSoTGXir3mO3MUjwv906Xm2F48tKjFI3bmqBIrudjfb/XqgLgmNcqix3lCSKljcnPF2BT3bG4f2Q4aC7UGE0EpDGzne9GsZLR7VaAYSGXRivWA51H3mAefMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=svMO617yxV9WjSTdFYoLpdoZVKjKefsZQpgPhyC5Fp4=; b=Ubt7/bPO+Xm038/qVDR8KdiZpA3fzuP4i3EbBtXLCO8qfVcV1sEdWkkF7IGi8qO/RTqpIx3nX3lVLVisr0yEFgxy/ZHyTq3Qp2HJtHnCjm51TJRY2MVMo5huLLJugnAADV0qNIOYXeBcd5+HdEwjyGW9K3tCp/4/8nOtespXBo4= Received: from VI1PR08MB2782.eurprd08.prod.outlook.com (10.170.236.143) by VI1PR08MB3471.eurprd08.prod.outlook.com (20.177.59.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.21; Tue, 27 Aug 2019 13:07:04 +0000 Received: from VI1PR08MB2782.eurprd08.prod.outlook.com ([fe80::2969:e370:fb70:71a]) by VI1PR08MB2782.eurprd08.prod.outlook.com ([fe80::2969:e370:fb70:71a%3]) with mapi id 15.20.2178.023; Tue, 27 Aug 2019 13:07:04 +0000 From: Jan Dakinevich To: "linux-kernel@vger.kernel.org" CC: Jan Dakinevich , Denis Lunev , Roman Kagan , Denis Plotnikov , Paolo Bonzini , =?iso-8859-2?q?Radim_Kr=E8m=E1=F8?= , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , "x86@kernel.org" , "kvm@vger.kernel.org" Subject: [PATCH 1/3] KVM: x86: fix wrong return code Thread-Topic: [PATCH 1/3] KVM: x86: fix wrong return code Thread-Index: AQHVXNhSm57U5w68n0a9k1WFYt6uIw== Date: Tue, 27 Aug 2019 13:07:04 +0000 Message-ID: <1566911210-30059-2-git-send-email-jan.dakinevich@virtuozzo.com> References: <1566911210-30059-1-git-send-email-jan.dakinevich@virtuozzo.com> In-Reply-To: <1566911210-30059-1-git-send-email-jan.dakinevich@virtuozzo.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HE1PR0802CA0004.eurprd08.prod.outlook.com (2603:10a6:3:bd::14) To VI1PR08MB2782.eurprd08.prod.outlook.com (2603:10a6:802:19::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=jan.dakinevich@virtuozzo.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.1.4 x-originating-ip: [185.231.240.5] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bb45f6f4-cc33-4b60-90ff-08d72aef74f6 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:VI1PR08MB3471; x-ms-traffictypediagnostic: VI1PR08MB3471: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 0142F22657 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39840400004)(396003)(376002)(366004)(346002)(136003)(199004)(189003)(25786009)(54906003)(6436002)(6512007)(5660300002)(64756008)(7736002)(26005)(4744005)(66946007)(36756003)(66446008)(186003)(66556008)(102836004)(7416002)(305945005)(50226002)(2906002)(52116002)(11346002)(486006)(476003)(2616005)(14444005)(6506007)(386003)(44832011)(76176011)(446003)(256004)(66066001)(99286004)(316002)(66476007)(53936002)(14454004)(5640700003)(2501003)(81156014)(6116002)(6486002)(71200400001)(2351001)(81166006)(6916009)(4326008)(86362001)(3846002)(8676002)(71190400001)(478600001)(8936002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR08MB3471;H:VI1PR08MB2782.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: PMJObK75TD/Un6nmv5QMkeoE11yAPQQOaRm2D3fBt+UtVTclu5GkeoklEerNgqdDmGuv5cQsK+UNirnN1G5Kx8j6nmPd6T3CUtk3AvqItB/wX4xfdWSJf8RdTdxU/Cv347PxRjRCyxervG5xk5KWjQh/pGFXgK95l7JEWxmO+f0BjocQeg1PphaBo6UIKTwQl+/nkDId5qdWsgRrkDFKNHJM23jQmdl74JbUo34nWmMJ1wUrcIW1f6OXW1yJ446ZkfSuZQRomTdN3kxRFQfze26sCD/oYz7xNRdavKHsr1M9RdsKZ5iVeiYFkPtKC9CCPAc/rkvJ/MccWBppJUMqhckdmFhA5aXoC0KwV2f7/Hncs7fp0nTnhkZ1zp/YT8+fd2cwP+Bq849uzoj3zgCiux02XtPWYTQTUjaAZv2riEE= MIME-Version: 1.0 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb45f6f4-cc33-4b60-90ff-08d72aef74f6 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2019 13:07:04.7828 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1YneTsPm869tBdRtWEp5o2kfweg3PnVCiAupsk0onmZtt9VD0+9lf0gG5Y/pxR7AjSKWYtxHGlzevps5ft+/0dIrHlqlCxRYTvuQUuWVeNU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3471 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org x86_emulate_instruction(), the caller of x86_decode_insn(), expects that x86_decode_insn()'s returning value belongs to EMULATION_* name space. However, this function may return value from X86EMUL_* name space. Although, the code behaves properly (because both X86EMUL_CONTINUE and EMULATION_OK are equal to 0) this change makes code more consistent and it is required for further fixes. Cc: Denis Lunev Cc: Roman Kagan Cc: Denis Plotnikov Signed-off-by: Jan Dakinevich --- arch/x86/kvm/emulate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 718f7d9..6170ddf 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -5144,7 +5144,7 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len) else { rc = __do_insn_fetch_bytes(ctxt, 1); if (rc != X86EMUL_CONTINUE) - return rc; + goto done; } switch (mode) { From patchwork Tue Aug 27 13:07:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Dakinevich X-Patchwork-Id: 11116899 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D464514DE for ; Tue, 27 Aug 2019 13:07:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A92EC22CF8 for ; Tue, 27 Aug 2019 13:07:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="VBgEikBV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729918AbfH0NHL (ORCPT ); Tue, 27 Aug 2019 09:07:11 -0400 Received: from mail-eopbgr30119.outbound.protection.outlook.com ([40.107.3.119]:35904 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729470AbfH0NHK (ORCPT ); Tue, 27 Aug 2019 09:07:10 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cs6xLnr48wjRoSPGaYwZqHaViSKuTJA3vhkMSIhOlhAKaMmiSXO/sD32Nei3xgN2UYVrD0Re0HzGDnV1J02toq0ox8+B/TyehkPOYQYTEdkRjR3GTzULgmgfBJc6wS6GU7LiR79D4PeI329NZc3BGCiE37p1i7NXfVugOICln5CG69J99/QlE6q7Un04QNEMdm6B5e/JmsPAJVyAhUiqrekXM8u2isnYn/RTBErhMaLq4BGytjbu7YI7NpwwWShpYZCJEnyaDqK4dJK+Trw9ewIijABjUTfcI5kSEWwPKlizd9IRv+HcdqaH1tQ9p4axx2yX8eam7qkD8iCz1xnAcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GTU3RBaioQK1he+2mgZMaj08Q3uYZJPL8GyJPnwY/A0=; b=IRcAdffo2dKHk68ZOuoV52cwOzCZ++xXcJET8IdHqgdDW6q9UNYHpjG7GDWP9ER2IML7CXmx23oI2rkDr9Hbdcn3axsSTiPmJU/KheXcWEByk1bTikiplCGFAWdjtIv1A4y6IY3g81dpFLDBfi9vF9Fki3i0vavc/zRKUDwPulpOYlWjs+41uXrsb9ZUEkwO0+IyxOWPHAzIsh+rZIFa9k9gwCzcXwWZMjA/ZdaiQw++wdmkz2uMPVqQSe80yezIdqK1lystKS7WsGAqMhFMH3NupfFqbP02Qi9JJRiTDlZqW4fmdBtuikTr0vhz1S4r5k7SKK+QoonmKqMmEnWdWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GTU3RBaioQK1he+2mgZMaj08Q3uYZJPL8GyJPnwY/A0=; b=VBgEikBVl66n9PYdvQYWxhoNYb0YLO5Rq6XkSpmeicP4atilFqUWAo6O23AzXBKf7CBdaDUy/NEsW6HauaAVJ6FsxA866G5AHruhxqPpo5UfVRjmIMlDV9AP5E3qBsU7mG6fgwVNhAoi8HIhEe5NQm2vvNhBgOB31NKl10YaYf0= Received: from VI1PR08MB2782.eurprd08.prod.outlook.com (10.170.236.143) by VI1PR08MB3471.eurprd08.prod.outlook.com (20.177.59.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.21; Tue, 27 Aug 2019 13:07:08 +0000 Received: from VI1PR08MB2782.eurprd08.prod.outlook.com ([fe80::2969:e370:fb70:71a]) by VI1PR08MB2782.eurprd08.prod.outlook.com ([fe80::2969:e370:fb70:71a%3]) with mapi id 15.20.2178.023; Tue, 27 Aug 2019 13:07:08 +0000 From: Jan Dakinevich To: "linux-kernel@vger.kernel.org" CC: Jan Dakinevich , Denis Lunev , Roman Kagan , Denis Plotnikov , Paolo Bonzini , =?iso-8859-2?q?Radim_Kr=E8m=E1=F8?= , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , "x86@kernel.org" , "kvm@vger.kernel.org" Subject: [PATCH 2/3] KVM: x86: set ctxt->have_exception in x86_decode_insn() Thread-Topic: [PATCH 2/3] KVM: x86: set ctxt->have_exception in x86_decode_insn() Thread-Index: AQHVXNhUGXqiO0HWykadKGZM7EVsbw== Date: Tue, 27 Aug 2019 13:07:08 +0000 Message-ID: <1566911210-30059-3-git-send-email-jan.dakinevich@virtuozzo.com> References: <1566911210-30059-1-git-send-email-jan.dakinevich@virtuozzo.com> In-Reply-To: <1566911210-30059-1-git-send-email-jan.dakinevich@virtuozzo.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HE1PR0802CA0004.eurprd08.prod.outlook.com (2603:10a6:3:bd::14) To VI1PR08MB2782.eurprd08.prod.outlook.com (2603:10a6:802:19::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=jan.dakinevich@virtuozzo.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.1.4 x-originating-ip: [185.231.240.5] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e8eb0b6e-2afa-48a5-805f-08d72aef7711 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:VI1PR08MB3471; x-ms-traffictypediagnostic: VI1PR08MB3471: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2733; x-forefront-prvs: 0142F22657 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39840400004)(396003)(376002)(366004)(346002)(136003)(199004)(189003)(25786009)(54906003)(6436002)(6512007)(5660300002)(64756008)(7736002)(26005)(4744005)(66946007)(36756003)(66446008)(186003)(66556008)(102836004)(7416002)(305945005)(50226002)(2906002)(52116002)(11346002)(486006)(476003)(2616005)(14444005)(6506007)(386003)(44832011)(76176011)(446003)(256004)(66066001)(99286004)(316002)(66476007)(53936002)(14454004)(5640700003)(2501003)(81156014)(6116002)(6486002)(71200400001)(2351001)(81166006)(6916009)(4326008)(86362001)(3846002)(8676002)(71190400001)(478600001)(8936002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR08MB3471;H:VI1PR08MB2782.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: m+TIeT/wQGxeuUMdJMwZ655CNu97Aj329r/gXq7b/Fn9cC+3WGZgZm/Vw2foYwbW1WP1M1UKXdL0GYkxhO1x/iMMnrsyhEO/fbhFvnWGcT8svADf+jJcZPGrUG15hzLVdmh5Ah+oV0rx5dukCWa9VbZaU94N/FpWPA3AoqhOhG0j/ZeQUWGKEm4+J8M+0cP30zT4b78JaISNj2eBJ+L02WqUcZrI5X0sqnmfaQSUCvpW97gd06zjC8zraDeY7Plrdy+ATOorPZA0scrCP409n2X/2TVG5Dx9dRgF2rNT2l3xplyBtNG8Mk44tC6kv10LUy06Ktpz5OX0Ni2aNiO8p378nKASQMLvaSE3Rsm3CMQcgCZ2XxLVNQ+U6D5kV6LhdNU78ioGSUt7f6/BnuOpk9e5JC0q5AO9m4KDYu93SDo= MIME-Version: 1.0 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8eb0b6e-2afa-48a5-805f-08d72aef7711 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2019 13:07:08.0839 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZjHWoSrSdgHNJOztv2yuWB1h3pLp82jpxIUcT0sTUOwPtoRWZDixgLXfYnKXYGmdOnJt0Jp5kCtrDiBXn7BC5zQxxNGNPrlHdleamyn0j2M= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3471 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org x86_emulate_instruction() takes into account ctxt->have_exception flag during instruction decoding, but in practice this flag is never set in x86_decode_insn(). Fixes: 6ea6e84 ("KVM: x86: inject exceptions produced by x86_decode_insn") Cc: Denis Lunev Cc: Roman Kagan Cc: Denis Plotnikov Signed-off-by: Jan Dakinevich --- arch/x86/kvm/emulate.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c index 6170ddf..f93880f 100644 --- a/arch/x86/kvm/emulate.c +++ b/arch/x86/kvm/emulate.c @@ -5395,6 +5395,8 @@ int x86_decode_insn(struct x86_emulate_ctxt *ctxt, void *insn, int insn_len) ctxt->memopp->addr.mem.ea + ctxt->_eip); done: + if (rc == X86EMUL_PROPAGATE_FAULT) + ctxt->have_exception = true; return (rc != X86EMUL_CONTINUE) ? EMULATION_FAILED : EMULATION_OK; } From patchwork Tue Aug 27 13:07:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Dakinevich X-Patchwork-Id: 11116897 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8B4DE14F7 for ; Tue, 27 Aug 2019 13:07:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5D5E02189D for ; Tue, 27 Aug 2019 13:07:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="n3yDrGOX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729470AbfH0NHP (ORCPT ); Tue, 27 Aug 2019 09:07:15 -0400 Received: from mail-eopbgr30119.outbound.protection.outlook.com ([40.107.3.119]:35904 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726170AbfH0NHN (ORCPT ); Tue, 27 Aug 2019 09:07:13 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J1RorPvEVN04WhIjCF4kvNFbAsy6HLtgx3uW5znKE5lEQamYzUtF5+noMmIqGA+CmDkBxBpL3usscusRjC9xLgaoUXsbwHqS/s/8aoM1bcfTvkDHz/o+8HNqqoPL/KxMaEbGb38L63kYkXZNlK/cMuT0DZRsboOf+UWdwNNkcZ3rnfrurxay6cDs/QD1+LnnHM3IftAQ8HWYbpSEveiTtI7xZB1sgeSbyrFz/O0BEeOp2TyYOtIoqIMVfwLiYxEZ5A38WnPn3JR3kVTLIBAj1Uadzo0cDojHFwXahYwOd9aEYqSZHHSzNXkYLMXH472FXU8cF3tuO7MgtKhy4HovcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wmdzwEsncDQ+h/NNev10+5y+72K4vz/osmUUL/hZIX4=; b=OzrBx/xaL06si4EdItriWgQuPk7wo5cEFDs53dbEdjOqX6MH7QTcm4mZQL5d8RmER+sZGeNtnA4MIb3Y6tqPaIfa0og5cPQZK684InClpw6RtInx8OsTKM4O/Xz4W1o5SoJbwLgMSfBEu5bfd5n6z+LsGnQXkOgMVqQNyDLFRaql1tbJmyycXPHtl6A3kq/QhUvNqMgnDxZzNQ+D2XgaGjUmuoEyjl+F1mJyHC/d+cw+YfBF1vczgQXgKbvg28PM/0XME09zzoNOH68ufRX2aUCGxux5UsAJJHtTvsu5JAj0XrD/zTEL0c0fxixj/tzUkQf4yBgd9IgRd6XlTH1MfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wmdzwEsncDQ+h/NNev10+5y+72K4vz/osmUUL/hZIX4=; b=n3yDrGOXnSnf6aH+KY0MSjaCt+AUxkI4qeqy17usc6YjiveKlygZV3DRLgxaRfFldoNNUgyIuvME2jwX16oUeb4TSMNdXhCCiT9V/jMJQ6FoDqVUb7HwQB03x5fkFpio6s84GE7tCPSTOz0+1EUZ6N6tIfVlh7EaIE6bPA2IIlU= Received: from VI1PR08MB2782.eurprd08.prod.outlook.com (10.170.236.143) by VI1PR08MB3471.eurprd08.prod.outlook.com (20.177.59.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2199.21; Tue, 27 Aug 2019 13:07:10 +0000 Received: from VI1PR08MB2782.eurprd08.prod.outlook.com ([fe80::2969:e370:fb70:71a]) by VI1PR08MB2782.eurprd08.prod.outlook.com ([fe80::2969:e370:fb70:71a%3]) with mapi id 15.20.2178.023; Tue, 27 Aug 2019 13:07:10 +0000 From: Jan Dakinevich To: "linux-kernel@vger.kernel.org" CC: Jan Dakinevich , Denis Lunev , Roman Kagan , Denis Plotnikov , Paolo Bonzini , =?iso-8859-2?q?Radim_Kr=E8m=E1=F8?= , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , "x86@kernel.org" , "kvm@vger.kernel.org" Subject: [PATCH 3/3] KVM: x86: always stop emulation on page fault Thread-Topic: [PATCH 3/3] KVM: x86: always stop emulation on page fault Thread-Index: AQHVXNhVZAApmqxiJkatpVKQ81RyEQ== Date: Tue, 27 Aug 2019 13:07:09 +0000 Message-ID: <1566911210-30059-4-git-send-email-jan.dakinevich@virtuozzo.com> References: <1566911210-30059-1-git-send-email-jan.dakinevich@virtuozzo.com> In-Reply-To: <1566911210-30059-1-git-send-email-jan.dakinevich@virtuozzo.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HE1PR0802CA0004.eurprd08.prod.outlook.com (2603:10a6:3:bd::14) To VI1PR08MB2782.eurprd08.prod.outlook.com (2603:10a6:802:19::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=jan.dakinevich@virtuozzo.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.1.4 x-originating-ip: [185.231.240.5] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 77f48807-dc3f-43c6-7a98-08d72aef7819 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600166)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:VI1PR08MB3471; x-ms-traffictypediagnostic: VI1PR08MB3471: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1284; x-forefront-prvs: 0142F22657 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(39840400004)(396003)(376002)(366004)(346002)(136003)(199004)(189003)(25786009)(54906003)(6436002)(6512007)(5660300002)(64756008)(7736002)(26005)(66946007)(36756003)(66446008)(186003)(66556008)(102836004)(7416002)(305945005)(50226002)(2906002)(52116002)(11346002)(486006)(476003)(2616005)(14444005)(6506007)(386003)(44832011)(76176011)(446003)(256004)(66066001)(99286004)(316002)(66476007)(53936002)(14454004)(5640700003)(2501003)(81156014)(6116002)(6486002)(71200400001)(2351001)(81166006)(6916009)(4326008)(86362001)(3846002)(8676002)(71190400001)(478600001)(8936002);DIR:OUT;SFP:1102;SCL:1;SRVR:VI1PR08MB3471;H:VI1PR08MB2782.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: virtuozzo.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: frETppitIR38L0sPS/2xH3/yiPTAhg8idCNlIWVcE6SR9tkMf4gkzVBxbi1OGwhiCuPOgQVjBUTzFjRisv7LUTXApYkRUM8J86k8rY3UbgjHyqrDnV78FUyjgfnQ0okyB2CbQLJG+yGCi/xHuF05hRHh18zEbk0LxcQH+j8nJ9abZa9DFJt/Zqf6FWKbtLMwd5bhxIHeZVzUiy4h/9evVbjPvYGLg1iem+fb2uVDmTG+o7bBFQ8G5ba+L1mqTz7P+npWqhgyhAYCqYFGB77FH+tSA+QRDXaQXX6ka8+HMkgKTCVD8Dw103LbKFjAy7jzW9Xj/9ngg3zydBZacGCaebDX6M4v7Vd9Ce2Ni4iBZU+Vmo6Et09+KEd4Co1rmmOY9p6vSWwNVu/LhLZkhOupuCfg8RylPOIIssVneg+zmtQ= MIME-Version: 1.0 X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77f48807-dc3f-43c6-7a98-08d72aef7819 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2019 13:07:09.8379 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: hm1oYtEFjPmtMyjHiIkHQahp6cKKxdfNkMvlc1w9tHAQ8K/Bp9RGK46paAqBjHkNdBEEcZw0m8uZjjBXG+wFA+DVni1L6qojPb/a2EWZSn0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3471 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org inject_emulated_exception() returns true if and only if nested page fault happens. However, page fault can come from guest page tables walk, either nested or not nested. In both cases we should stop an attempt to read under RIP and give guest to step over its own page fault handler. Fixes: 6ea6e84 ("KVM: x86: inject exceptions produced by x86_decode_insn") Cc: Denis Lunev Cc: Roman Kagan Cc: Denis Plotnikov Signed-off-by: Jan Dakinevich --- arch/x86/kvm/x86.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 93b0bd4..45caa69 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -6521,8 +6521,10 @@ int x86_emulate_instruction(struct kvm_vcpu *vcpu, if (reexecute_instruction(vcpu, cr2, write_fault_to_spt, emulation_type)) return EMULATE_DONE; - if (ctxt->have_exception && inject_emulated_exception(vcpu)) + if (ctxt->have_exception) { + inject_emulated_exception(vcpu); return EMULATE_DONE; + } if (emulation_type & EMULTYPE_SKIP) return EMULATE_FAIL; return handle_emulation_failure(vcpu, emulation_type);