From patchwork Thu Mar 30 09:13:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Chen X-Patchwork-Id: 9653361 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 8369D6034C for ; Thu, 30 Mar 2017 09:17:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6A0972857B for ; Thu, 30 Mar 2017 09:17:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5EA2E2857F; Thu, 30 Mar 2017 09:17:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id EBA8C2857B for ; Thu, 30 Mar 2017 09:17:38 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ctWAg-00061O-V8; Thu, 30 Mar 2017 09:15:10 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ctWAf-0005xu-E8 for xen-devel@lists.xen.org; Thu, 30 Mar 2017 09:15:09 +0000 Received: from [85.158.137.68] by server-7.bemta-3.messagelabs.com id 5E/15-23854-C9CCCD85; Thu, 30 Mar 2017 09:15:08 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WSb0gTcRjH97vd5vnn9Jymj+YSF4ElmlqiUME iqKC0kDDpRXar0y32R+5m2Bt1aVjWytLM/wqmoJZJlgpGljpSS0kjSR2RWOiEXlhYqRjd7abZ u++Xz/P7fn8PPIRUsSQLJphsM8Maab1K7oFrd2PqyKq39tTo991xCQ8WG3A1OmrrWcVOojMyn VFjyj4n0+bXdeCZU97ZvR+WpHloxrMIeRA4lSeFlbVmN8EoqEYMeh9dwUVjw2CmpN1pEDWOoM dWIRXJCwSWuUHeuPPmNgbTLckiqEPwc/E3JgA5FQbWOxZc0P6UElqLqt0ELaXyEbQtHxa0H3U c2uc+OWdwagcM1M06Z0hKDbM9vU4N1DaYHL3uLHOnDoKlckYuFquhdmVMJs77wlDFF1zMB3g1 P+/6nBLu20eQmBMEE5Pv+EyC19thuCBJ+DNQVhxWR17ioqmXQeFyvVx8kAilozVIBNUImgYm5 KIZweFeqwMTTYscfpQ3Oru9KQV0fX7uAp0YNOc3uZbQg3V53JW7D8bK6lxRN6XwrfoPXowiKz ctUrlpkXqEtaBwjmEvMWxkbEKUhtVlaM0GWqePjIneE2VgOI7OYPS0hos6bzI8Qfw55EokqBs VDib1oSACU20hO2rsqQpvjenCZS3NadPYLD3D9aEQglAB2fmGZ74sk8Fkp+v0/E2tYyC8VP5k u4BJLpM2cLoMEQ2jsOBAMoA/NwUlAG2WcePZ+jWOI2WwH4kkEonCK5NhDTrz/3wBBRJI5Uc+E +K9dEbzRvoCX4zxxYH7p4RiM/0PBeehsmPpcddKrPG13+WWA6/bij2iAj8WVESnKBPsy/ZYH6 XuK0rYW76z8dTVnsmn8WRxQOmRgpRDRZYToRHm5KrwxDXPX/39o11b58+u3g1ZdZyefehxq7T vsW3G4dOWG1B60eBe6ZnmkA/CjUTTtGoopyClrSgmoqSwoTaHDTUvcCqc09Ixu6QsR/8FaRwP A4gDAAA= X-Env-Sender: Wei.Chen@arm.com X-Msg-Ref: server-6.tower-31.messagelabs.com!1490865306!59162501!1 X-Originating-IP: [104.47.2.64] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.2.3; banners=-,-,- X-VirusChecked: Checked Received: (qmail 12956 invoked from network); 30 Mar 2017 09:15:06 -0000 Received: from mail-db5eur01on0064.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (104.47.2.64) by server-6.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP; 30 Mar 2017 09:15:06 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=MGj4C2UFRtw+9kdnRSssVqvr2ZcCkKPdOKma1ETYmsU=; b=ip/qaXYqII123PDu2ut2IrG1W/VBy1VqZZ5jybGFrkq6uM2TnUJnh/M9D+4MET1sXmgkRuFsWeXlg8RRYlnERbMYM2m1IwIBreSQXsctEW8QbPXzUeIrwpveIiwNT0qjinU+yUvFIUfG6xNXuEnX2iunTptAmjFAMNPYY2h+z3M= Received: from AM4PR08CA0013.eurprd08.prod.outlook.com (2603:10a6:200:1a::23) by AM2PR08MB0212.eurprd08.prod.outlook.com (2a01:111:e400:8431::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10; Thu, 30 Mar 2017 09:14:13 +0000 Received: from VE1EUR03FT028.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e09::204) by AM4PR08CA0013.outlook.office365.com (2603:10a6:200:1a::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1005.10 via Frontend Transport; Thu, 30 Mar 2017 09:14:12 +0000 Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by VE1EUR03FT028.mail.protection.outlook.com (10.152.18.88) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.977.7 via Frontend Transport; Thu, 30 Mar 2017 09:14:12 +0000 Received: from P300.p300.shanghai.arm.com (10.1.2.79) by mail.arm.com (10.1.106.66) with Microsoft SMTP Server id 14.3.294.0; Thu, 30 Mar 2017 10:13:46 +0100 From: Wei Chen To: Date: Thu, 30 Mar 2017 17:13:16 +0800 Message-ID: <1490865209-18283-7-git-send-email-Wei.Chen@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1490865209-18283-1-git-send-email-Wei.Chen@arm.com> References: <1490865209-18283-1-git-send-email-Wei.Chen@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140; IPV:CAL; SCL:-1; CTRY:GB; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(438002)(189002)(199003)(47776003)(8936002)(36756003)(8676002)(48376002)(50466002)(2906002)(86362001)(77096006)(54906002)(6916009)(2950100002)(6666003)(5660300001)(4326008)(2351001)(189998001)(5003940100001)(356003)(110136004)(38730400002)(50986999)(76176999)(104016004)(106466001)(305945005)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR08MB0212; H:nebula.arm.com; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; VE1EUR03FT028; 1:WOahLf25HyT8H7e/fR9UsEmOi9kTHKBGTtiq5Mz7ff8A2MGHT53P5VOUvOrCP75JRCqr3x0TBsf65klVrjeFfWP2NGJg3fR4b7yBZUgi7zkk3jcsJcf6JcCNV2DdkQOclFS8HB6ThBiW879jUIbmPCplUKWHBdEJUi3EXAdujMCd7jQJN+FBoDkHkPgndX2A5//GsRK7QnNNP1Ofm+8rmxJzYtsQNUB03sKaMvEQUbtccDgxENxUI5miPnaINCUQr0BuRyH1tjwIP8Mid/TNLbcJmcJRLef/tQrGLy8SJIl4ZTlygxJV0MChAV9qR3Z/XiTZcQNA3jcgms3Bl4uJd2XHZ9swP4nrdqKWFV/oXeou1amPm5UyMu+WIU00Ejoo2Mv/HskelPe8hlmlCNk+VjRhbMTLIfogmtI+2rxdATRP6h8yF/eb1OyxpMWkxt+C0rNPGSkCJXgyRFGB4dv0QVMwPoQ9nHA+GzDEWMR5ZUe+IWw15vexXyjFzYdyL6VYLaf1XkVH4BC2rTdGZpr1j8OKkX2qvXw2N+jKnJ5He3aNcG0hVk4P1268mOdFHsmXLFvmFommkvOY3nJwkCLEFTEwNpVunoDkDlTDWuk4Ob8= X-MS-Office365-Filtering-Correlation-Id: ac479710-9fbb-41da-fdce-08d4774d21b7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081)(201702281549075); SRVR:AM2PR08MB0212; X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0212; 3:5CX2tufSHALf9vnDj7uKidi90ZzhAL8TZlmS/YNo4GVgWmvSr3efXawG/g67NhPnFdZqF33/NnR8Rb4Eg2AXAGHxKYWYzpNzeN6+ks/koHBOiJvnEaUC6A1j4fMa8Qw7y/mWlLlvXz6fvK/8F7TqeTnODkmEl91rvZBqtxj0S8uPAoi1aV54Ksm2SGj7gXdDS/HvHOhv4A48ejTNJfkJ60cJh+aIUWxT2VrEXIqCIfmoWn9QvS8uf4FJ/cDnDQi9JtQpx6HX96stn4jqz4Ck8H5TExaQt3WmRXSQJChUlPhcqvCvI0gyq36dpi+ag3gce2I7jQECovDzYRWGxOAV3kQEqafrnzEZrzfIxmudNrCE+msbMac1KNm91rN4Nh+ICRzPjz+N7De0gnQLP9CyjvmZG33+tBbZ3at4uzCL4dt/y87BaqjpaLg4Zpgyd7uAEYt2GyTLGwhFJLd8B4qX5wssoewFEvdvVayw8scXTFi6tB7JnPJ+WgAqufKW5VoMkrmcW2b+eBsIs7YM8o1VLQ== X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0212; 25:sgm/q78nTB6gLaIAGODjmwnQOtRgvIksbDHZg7DD7jFfxhzqdt/ZHD+/ueKrabXJtKabsAlP9Hku4fAj9G7NnluFcj4x4ULNoGmb8xHYEXjzHttlbLOaA74R2nI8r8coga4CELhFMlQtXdD+RikdXQq7BrnWMX4eSRKuRb8YpW96PFr2FBNE7EvevEUXTaDuaBST9cshOpSFYUgSrEdo3aJlcEElMg4oIHgo+NC6MiM+fS2k/bA5WoJfp9ROlUkCO9xKnKtPtpda0rntAYmGFwNTkpfOxQ2OuJ6Q/nRbkY1wkV56TGKnAgaZdvDSKMjSFqtIlnqtpE9VXGljI1TbPPdeFpeV/B1j8BVeyjH46SbQVJRWYPMurJzcTWUGfwBYX+Xy5VMpimDsUUCzSFn6qWZlfHPbKzNHfRtXasfGO0rr5clL3E7TITJzmMaKQYb6A+OCrhoazeymBcIHbbDquw==; 31:MCD7d4/JlUbpHWOBVdphTUE46Ab08vJA/FH1NSNMfUfdv+mTNAP8S1+BtiWl++OCix8Bo/XJl8ApLpuw00AfyuS7hfMLAR6a0nGBrlk011FOKIFo3z16zeTlreK3X3oyMZAlE1/s8x0VzE0gVF3qb52GFKHgYgAIYRxoimhhTGPPh1TGVJQh/2vptr2e9wqBq6C+9LFF7foacu6vgqLQeaCJlgUExsE6HjIS4azN1UC1jA7IZYsnmKXlZ+ZCvTx66Em+yloklIzGT58NIzHGaQ== NoDisclaimer: True X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0212; 20:X98lBdI8whAf/bqDh7KAyQi6Skf83dOWwJaxMIaK036GCpXDihWNNQo1LsE91UbAmvDoi0nZw75ApvtILf8Hg+b99XMM+19nf7s917xOAXTxe8RmFMRy+uv42OU3lPdgz7Jp7eIN02o5p5ihq+ilgYTbVKBzQ+/+AT1E11Wl0LSy2bLnA0H8/BAFs9Y/rT2aBIuiFVz3M8SPuPO2VYMWTQrfur4KsSP/dowkCPKNo0uXCBt2ryVriXUhxNgNDthp X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(13013025)(13020025)(13024025)(13023025)(8121501046)(5005006)(10201501046)(3002001)(93006067)(93004067)(6055026)(6041248)(201703131423075)(201703061421075)(201703161042075)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(6072148)(6042181); SRVR:AM2PR08MB0212; BCL:0; PCL:0; RULEID:; SRVR:AM2PR08MB0212; X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0212; 4:N/Uoc8F5StH6lrzV/bv2qc8xcH3WAkoRXF5RySaSlQWrqLIZ8RosXzpWXbMY9V6x4h9gLQLrnkIipKEdt1ky0IU1mghcNtkymbopnSanqvdbdLHlNW8ZK3ZTiGqGQ+1mJvVibNMv6b+fdCjAsbVG39/2CkOQwo0nCVGe79VFuf9x7wnFb5qmqzQ43BqRtp8LcZkj/M8idAMzpaH0vpySWFzyZSBItGdO5VN9dZvUN+JzXNtwA8+y6jTogaY1f7tEID14xWJh7q3uAcsb4HQYawQHg2BXDrs2brnM45RRSZ2A8WDVeLAOi+WnBggxt7Xb+OVdPG5PdM0Ym2xkOKz4lTZU4hXnJQuB3aeTP3LmZdj/M7SYKWoAJtYT9CljTMBJUYVoJWyivuphK2XtQiA6eOVQVlXIHPBNqb1es6zt0+2ZL7LqCGhJFAo4lSKCidDG7+lGV/Edfq/zIE7IK9YPydGI5Y1ddmkUytEmo7vIJ2k1tVZ5yVZaVORaKLbvWlbz83USGS0XMb3EZcd4cMed2UWr58ylGwLl0HL+YrLB0AZgQxFfhT5YV7KcPRnFTCSu7SAHWPRsk3zTwhEeD7Oxy4CkmWh6ZRwcl2xTHFT8vklprubG1bnlfqU1xamnqnkxGW3O05/hCT7VfYWkhzFtLCz/Zo+E0LdSPG0R796XECFlZjXyqjhWY3JUaNOvOS2U6c7ZjwnyACBxRwcbP07JTKgJ69fCvDOF4c6pO5KLh7e/FHpLQ/5qhdrhjJI5R88vikSwdBMNGmMAg3tiPLUY5QPQEGK3yR7PKJIW5BfZW7HPESdinhW4o427CN327WZKI5Mvo6r+6QwLTe64WBLTQuGgr43DgWfxqE22kFPtngIlnjpyxqCbgI+vaEpicJBq X-Forefront-PRVS: 02622CEF0A X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0212; 23:w6G98tbB1s7CIEEPGyq5Tqxo4+rXjxD3UUZdWkxGqKGRGFcPpm6YVgtgha290Jspf9lnYK+6A0UnOHo74Zw5rgFNEJFuJ+MyfiUepXSd1ppkcEp2Fxhyc8LKpJqnJJ7yQAICkhVSzBgGfgp5BxEGkL8BRT6NeLS+CyxU7hORMZC3g6g0yBWsM0CNzwbKs2rXTQ0xTSu5tpZvd63lcf42Dip1XvdFSsbiqP3nROfImmo91GA2ycwwCj2wgnm+8spuOSzG7hMvA94gjfggOEOBnJB20k8I/q51NDG0ftou+sSzkXUsHnkGkuzZnA76sH4KOaEsWvI1TFIpCMzoVYX5HwZ3HLoHrGj5aIUaDoFuukQOLOJrvDJwP8O/0Fuw3MqjtSlQ9Ev6F3IIMUM4rZMVbC0jP/lob9jNZXAP7o6c1ujBbnlmvbwCBXB81Dves6EzhVRSvcHdkteKoxHgt0WC7i9ALPyy04PF5t5gGbl0nMKq68CLHPb++4xSwW2lClPZaTi71iBgLsvkr8d6/Apl6mw+itTlnv+Xt+g5mKRcpfz4CfdPV26np2uIcYO11S0z+YEg+Q3SklTpi9OkVjvYSAhSEc4H4oJ1EG/t3gL/neXUCZNtuRFciwp3iED6K4WkaKZKKLRyoAi6XNjtRftQkgTeWqSAn5cP0J4S+6pz/Y7yGC+hcWx+Hx93OGD4i8rIzl8ZhyCSojYA0Kv9vwKlyLMOPtzsc+va3FYIbJcilWiL1ZGizd4Vm82/J5rtL2tELPR28zX+NHzVg0iWv+L2Zs5kCfWgQCp8abrPdnKISEeyvcrzovqLxjF6bNrERxhG X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0212; 6:z90pN3ijre+Bs8G2bExd7+qe7/UT/thnGHN4DTAcZv0idbll91hu14FfxLoFe+gFLs5Ng+dWncxPD0QOXx1A7MmsBaCR12w/32dUsPhUklFoTZX7RdQJ37KRtaK2HZePS4jhBNgJYB2ZklfBKzlGv+kzjFpnBJxKKMtP0oWlbSXNzpvDQWEBBhjdqSiQim1XCRkQLU/lxXkADuTcezJTtH6GNQ8/Z/wIdbwGmhLaoLRragTCG3oUEechDZ79S6j0Z/8A/AmKbIZMsC3oB17O/Hs034g1hmFx/5hyPqWqUFHnqamYuKD3Cm319CQYr1pyAP7dZ06SDQ1SWEjliH6AUH1PSpvO2umw8R62M5P34mt3ZEiGVPAieElczOHPrEmGUu0zIuCU9QXeZgHb1+IEymrV6lJcIY3fWP/ZEPNnxic=; 5:l1wQhQ6aYwYiIJHJ+uKjuzrVgqTN71G66JpvwFcJ7DoTfGlKuVLjJABIzuudPgBDqovcSCinIOeP4nCN90mp5sS+8AIupbC9reiYsQCtmP18y0fsihiBELZdpxZzYOfORjqKncqowOCYJ2zN+/ICiA==; 24:EFpeFcktN+tWnNCq8qnVBgcnGFRLvUWDlGYCS+8NhQeJHexuyMCScZPzIzHKLNGqLaQNHPwaRcASwM+m/38gsjFeoFV9gjre5Fm7gz4vaTI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM2PR08MB0212; 7:dd1dkZSKqUGa5RzEBre2ew9UHRITwdwz679dCSXOy/CC6oKJQMeScydWurP0PqxNlRN7J1P4456d6sPDMjjSJ/1dptka0wKBq3jZgUj2N28Fqr6iweFztDTUbOGagrAHKAdESQbp5FQkh1Vto7IapnJnYwqiknk7MglxumXvwrQQC+groEuLOgMgdlbcjm9NaO0Dy8slVklCvSKpQI07GLtBXxQZRttThOF8NSVCy0En1h8bux3Zx5Ux5suHYe0THBDhutmGWG5jhWeuMIbabZfxpWgW1X2aHkGE6GG9tQx7WVvEYEmUuV2S7036B37N75Sw6mNHVPY14PirhXK0hg== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Mar 2017 09:14:12.5007 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[217.140.96.140]; Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR08MB0212 Cc: sstabellini@kernel.org, wei.chen@arm.com, steve.capper@arm.com, Kaly.Xin@arm.com, julien.grall@arm.com, nd@arm.com Subject: [Xen-devel] [PATCH v2 06/19] xen/arm: Save HCR_EL2 when a guest took the SError X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP The HCR_EL2.VSE (HCR.VA for aarch32) bit can be used to generate a virtual abort to guest. The HCR_EL2.VSE bit has a peculiar feature of getting cleared when the guest has taken the abort (this is the only bit that behaves as such in HCR_EL2 register). This means that if we set the HCR_EL2.VSE bit to signal such an abort, we must preserve it in the guest context until it disappears from HCR_EL2, and at which point it must be cleared from the context. This is achieved by reading back from HCR_EL2 until the guest takes the fault. If we preserved a pending VSE in guest context, we have to restore it to HCR_EL2 when context switch to this guest. This is achieved by writing saved HCR_EL2 value in guest context back to HCR_EL2 register before return to guest. This had been done by the patch of "Restore HCR_EL2 register". Signed-off-by: Wei Chen Reviewed-by: Stefano Stabellini --- xen/arch/arm/traps.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 48b3e3c..7762d18 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -2622,7 +2622,18 @@ static void do_trap_smc(struct cpu_user_regs *regs, const union hsr hsr) static void enter_hypervisor_head(struct cpu_user_regs *regs) { if ( guest_mode(regs) ) + { + /* + * If we pended a virtual abort, preserve it until it gets cleared. + * See ARM ARM DDI 0487A.j D1.14.3 (Virtual Interrupts) for details, + * but the crucial bit is "On taking a vSError interrupt, HCR_EL2.VSE + * (alias of HCR.VA) is cleared to 0." + */ + if ( current->arch.hcr_el2 & HCR_VA ) + current->arch.hcr_el2 = READ_SYSREG(HCR_EL2); + gic_clear_lrs(current); + } } asmlinkage void do_trap_hypervisor(struct cpu_user_regs *regs)