From patchwork Thu Mar 23 09:43:27 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Chen X-Patchwork-Id: 9640629 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 8C090602D6 for ; Thu, 23 Mar 2017 09:46:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7FE3F284D4 for ; Thu, 23 Mar 2017 09:46:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 73964284DC; Thu, 23 Mar 2017 09:46:25 +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 A535B284D4 for ; Thu, 23 Mar 2017 09:46:24 +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 1cqzHb-0001cS-7i; Thu, 23 Mar 2017 09:43:51 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cqzHZ-0001cM-CU for xen-devel@lists.xen.org; Thu, 23 Mar 2017 09:43:49 +0000 Received: from [85.158.137.68] by server-11.bemta-3.messagelabs.com id F5/94-23940-4D893D85; Thu, 23 Mar 2017 09:43:48 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1WSe0hTYRjG951zdnayHfmcVq9jKk0iE5RMiai goIIgHdKN2R/lWZ3cahc5Z4YS1OxCNLwVpaUuhUZmCkoSFrObLinJ0rQiumhladOKLmQkSTue afXf93y/533e94WXITXHaC3D5zt5wc5Z9XQYlbCX3JLUd6bPuNj1O22Z98t5ajVaf8c3QWSib UqL3eTIz1aaj1ZOErm9afmdnndKFxpNdKMwhsIuEgY6D9OS0OByAobefA6JTgIqvFWUJBB+hO DKbS+SyQ0EhcN3STeaFRSlBPz8YJRBDYLAtWZaAjSeD8UnCinpHYVjoMFdrZJMJD6H4NTkRaU EIrEJRp/WTyVReAF0vK0LtmAYFq+GsXZR+gYcC88eHJ+ysDgC7p0dmsokMcDtkZHQEDFQ8aIb yf5oePKsRyXFAI6HriMGqS3gZgr83hpaFrVKOPqpnJILMuC7pyVUvBdc9f6QqU8FhxqqQ6Kfg vvdJVOrhWMNtA62EXJFLrx/XKOU3yugt3y6RQ8BrWVeUhatNJzsaKRllw5+FH1EMriqAt94M1 GGEiv/WbDynwVrEXEJJYi8sI8XkpakJpsES47ZaeMs1qSUxanJNl4UuRzeypnE5J0O22UUPIe DCgW6ikquG9pRNEPo57Db1/UZNeEmx64CMyeadwh5Vl5sRzqG0QOrCp6NJkLgc/j83RZr8Kam MTBqfRQbJmFWzOVsoiVHRl0olamu8o0RzOTXW2OEhrI77Lx2HrtQsmLJas6zzwRN3+cjFKONZ JFCodCoc3nBZnH+zwNoHoP0kexsKUVtsTtn+gWCoxDBUfa19UijOLm/SOtCYf43blj7LXo4Vh xv2daSPZEx0u2J+3Vy7uGsY9yPDWnuunj/3E0kZ1g+YdhfMFH1Yk1E2enNxUWr6q7fzFrZFb9 I5yue/arEd6C/tDHP42l72NT7vCPlXhNc2BOXyS+NxFvjUD3pH1AbB9Nf6m5ZA27+xNONr2Nu pOMP3UbHcz0lmrmURFIQuT9QnUeWmgMAAA== X-Env-Sender: Wei.Chen@arm.com X-Msg-Ref: server-4.tower-31.messagelabs.com!1490262227!33583864!1 X-Originating-IP: [40.107.3.85] X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG X-StarScan-Received: X-StarScan-Version: 9.2.3; banners=-,-,- X-VirusChecked: Checked Received: (qmail 45958 invoked from network); 23 Mar 2017 09:43:47 -0000 Received: from mail-eopbgr30085.outbound.protection.outlook.com (HELO EUR03-AM5-obe.outbound.protection.outlook.com) (40.107.3.85) by server-4.tower-31.messagelabs.com with AES256-SHA256 encrypted SMTP; 23 Mar 2017 09:43:47 -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=BeyesVJPgnVTp8mauAFMMHo96MbG/Ms8VfyXrv7g6Ng=; b=B9HzVth7i6utPbIWujutXcf1aZBxUjLwuYMVUM0qxnF7lDl3r2+dT2Cwhe+ORCG/KXRzwP7E/R+S0BDWfi9aclDmOagiumw94CE52xUwmJwk9JiN5CDPmLQ3KME+nH3K22xsYmcowWKdRbQ3bhBSVB6IQHJb3SZ+7kH2f/fBURI= Received: from DB5PR08CA0012.eurprd08.prod.outlook.com (10.163.102.150) by VI1PR0801MB1678.eurprd08.prod.outlook.com (10.168.66.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.977.11; Thu, 23 Mar 2017 09:43:46 +0000 Received: from DB5EUR03FT008.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::202) by DB5PR08CA0012.outlook.office365.com (2a01:111:e400:52c3::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.991.14 via Frontend Transport; Thu, 23 Mar 2017 09:43:46 +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 DB5EUR03FT008.mail.protection.outlook.com (10.152.20.98) 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, 23 Mar 2017 09:43:46 +0000 Received: from P300.p300.shanghai.arm.com (10.1.2.79) by mail.arm.com (10.1.105.66) with Microsoft SMTP Server id 14.3.294.0; Thu, 23 Mar 2017 09:43:29 +0000 From: Wei Chen To: Date: Thu, 23 Mar 2017 17:43:27 +0800 Message-ID: <1490262207-30152-1-git-send-email-Wei.Chen@arm.com> X-Mailer: git-send-email 2.7.4 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)(39450400003)(39840400002)(39850400002)(39410400002)(39860400002)(2980300002)(438002)(199003)(189002)(305945005)(356003)(5003940100001)(6916009)(8936002)(50466002)(36756003)(2906002)(48376002)(77096006)(4326008)(86362001)(54906002)(6306002)(5660300001)(104016004)(189998001)(50986999)(2351001)(47776003)(8676002)(106466001)(110136004)(38730400002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0801MB1678; H:nebula.arm.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB5EUR03FT008; 1:t/2xGqShH2hNlArNodpQ5/Mf/WLEOH2y4sCFhsPIwLaskrHVwHyP81AmSgEqzswp35HzXyGfVpJRvUSvtXEI2tC7cZdBdlET7Dj02fog++OsHA3oDge+PHqJolckXRgpBi3K7GFr7CaJh9+U3a3uDIchX7X3Ndmsi0kagzTXnZZ1+8XmOmMcgiT5MrGC8JAUBErkzfFpx4fEZD4ntrb+RcIvHQYrSHEdkVdYDMaBxAgS9RD3lDPQbDM4bOYXXcg4Rqk0+compvHSZ6Hs7l6aL3oSE6y3obWJys51HoWfzD14ZXf5VGp9ZNnzq9r9wt8TngkzNs6xm8/6jIIFJT6xBHMyuCemGyJpb5nJ52gO8KOJFZcQS+G/uS0U6bUgj46Ybair0zcjCbuwRCfhTAmK9ntGLwZavJo/Bnrray/MfU/Prdk1zbeXdjd+wtfsO0lzKhblZCi8vhHdBnFw7I9ckUAfGA2FyoYDkB+K5ZTRjJhKOiEOThReQ7oCg2PZxmF4jJEWXnOXKDUO7z5xofYijs4Po3OfD0MpsiQ7o2x/l2ozJsbvVD8ri26kEcti8kHjtsXv0HMglU0ck5hoJ6TfKKLrnNLKZvlcTtym/x43pIA= X-MS-Office365-Filtering-Correlation-Id: dba7873b-9e60-484e-be11-08d471d119ef X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075); SRVR:VI1PR0801MB1678; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1678; 3:dH3dcL+ssCoXOtbo+6DS5WizAtqgn3+5kQzAvZz8mipDMzCwKOZig4ZOFimnmq/7RN24Qk66YrWjOzAqqxeZDGZLuVYbQ7Zm1hPsR/5m3P01y9SI6FHcHTzXx8/y9PpPi5AUO114DhGcoQEmVd4vSvzLMipK5KBo74VAbD4FiO64MPJMWAaOGxr0iYjeIKgfT9JSow0zoJydoYEfjKRsSJDN8aeDAGZYdJxLpfMMdJPo8fBhUivLOV8UgpZBiOuVj4oiUFA/HqNhx3oThO8HU6er1BQQ5T2kIs+b90/kyMO9M48pTr/5fRbI7koxgmhUKm/A84QBVtNucDtn1SZa/TlYb8EHQT3LlAhjw6N00JgNFfCXsK2h+ueZy+81GqH7RrIGdyFRdsWFZRVA8jETlYzB9YwjjS4LA3IshITZsy1AKwuO+fm0GhW/MLU2SfV+; 25:cqIsqDCXts+0UI8N1cgra/Ntz4QfY+QM019ba0qM0f//M7fpKh10qxWIuQrMuZ0pieXSfN/ct0x5c1hr9pW7G3sdjTjo2B7msPM0WfrWMxxAtB+3JRThbXxHBfw+xm9wkd/iJFSbaKibQ2gxRM+olKQt0iGR5Aok4+XmdYPLVjyi1gnlQ4oEGAuM4BpZeE2btO9Dl/S2qtTHsH0o7cGwjEKh6bGkTw6zrcKe5TjWK+IFALwIRa6c1lOv/eT7rPt4ViBxNOw3ZvFgzYHay6EyQbIs2MpuFGhAas2lWBhTwhxQ/WNV7+AQ07LIXJLBH0K6/5fTyotcGkxOpA87+NcrFjJMsw8SaGXgcClWskPJ/+QW9ennSdsZa63aURKoTkyAjRMLXhQ1CVVdtmWfMfXruzX7kMl5xDW3kYrrUye8M22tCYnvCBGmbD4qBxt28f1jQokuuurH8uuwf7rWjJaleQ== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1678; 31:QYaspdHTrZLrfJHe6fQfyaYkmisv3NxdZSTcEDh37HgstRJKsAXbdVgA8qDuYEUmC0OfSQMtgGExWJMdzlzloasYVrs2ZF/thLCK/o7OE0UUal3GKxtZfEII60lTBNBasy47p5qo8CAtteRlE1pCclgfaFF9yGrVHjl0rA3rP5UegXJnzQiteLY0jaMcL6XKzOAfBKulRJtaUvw/llq6+d7+7bYYFnQunYvqq7VXVuFxHbwDIYzLrX2JCbXTo1JOPnytuSSR7iCbBoxJp1PPkQ==; 20:G+TgjlMl03ZousvdYSG8Jg8t1T4a5cLFyNOZsYcdtrVq3fAHrqVatHcLdpMgYyG6AQfWvUuyleVYp+l+vngZ/ixBtgilmwedaSlMmtdxnDcMBGWcaOPoVnO8/tPH0tLKV4hge3QdMTEuZua0Hm2kSlsMKyG2+u5wRLODFb5/61bpCOnmc8ue5kOUdsAauctrkAykMmL6kpflHOZIydseuQtuA6HDq3Ovw6GC6ovLDVcAe6/RYrRizwNZsqtygDKu NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(13020025)(13013025)(13024025)(13023025)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123558025)(20161123564025)(6072148); SRVR:VI1PR0801MB1678; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0801MB1678; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1678; 4:Oaj80Nira6hQkR6AHDNJoPXp1YPIFV3tqGngwq4bP+8ChSgZPM7sUj64Z6/YpbrHYeiyieMgTeCRdMDuiGp0F1tb8S+JKwQKyhak+tCUvepxqNkJ5Q+QNCVBlff3bXM16CxUp0TEvO8+hMPi3qXHASgtUwBNg2o0jx8OBJ6rF73AyAYEfI9aMwtgiMjb34Zftb2gc1WwxuK3tnERVq4Rp4e3GJ8acyhgim+GVXja3hHnW7fq3ax842Dl4puD3w0MPP4f0IXNus7+1lBE82p7I7/1b1Z58/x9oVi/KzFn+2f+BnauELxyKrBGwkP5t/TVJcuy3Iys/mLT+M0LXfE4Do7r9M6Wvp5tj5mtHEYED68JeQzEYqfsEIKLDraIGVU0FbwWbiAc4M/h2swyxiPmUgMnrPOhabCb2pj+4/CBF3WoUa43p8E6FODfsomTyxAzwFrlQgCb4BYqZJcoRqAzI/f0eUxYxIk9qP7LCqUdLa4Atoy4OGTfsDvT/rCa70KP9itC/ySU+dFmcXEVcrdQ+PWo4gdi2gp/Y5u2RjAMjTAjbtIG8nj6yt/SZn45m2GD4w9spN4LUVktKSvkhiQ1D25d4iA+CVqbw1grlImitwv6lVMJk2AiAKXIjE6JSnTCrhZZUh59zI5Npwtk6fLZA+Xj1Axhw6k0OFdrzHSsKoJoOhLT85+YGhdVZ+CUp+5Yo2GSeBLbENlSonr78EJc/A1AlobtftA4y/EbsgV9PxO8TyEUw2QS0m372ttPq3zC X-Forefront-PRVS: 0255DF69B9 X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1678; 23:1YiTkCAMddfjAkup3YpXGvvay0P9NtGft+TkAlHzRFYllTQOR7iuFeKcLWpipgkGPuBvawIdbOGC9CQQaWkEgJaKOu37d/EfT1BzaCjl8SPHjjSzkbb565saNNqKGQUMR5y8C1EnRqohmX3yENr8Va3gBFqljHBiC+CuXCTUEvvuNR+TLs0BaAtVrIJyXYWJYRWH2wCejVQaHk9nDxkhIWt70Z9TcnPe7WIue184pHENFSdnxOWm9e/uJNrLIhbZkbWmtyC90+gIY/p1vIlBVZAGVBFXyz9J4QVY9VUUXmFG8V0JQP6S+kGVnZHOccU9eUYtUsb24iWrs535479IKetnosYl6suZGIid0go4CeyerbccLxB8196/3MyKrpu271GhzttKAJxx6DLyIEhxxypG14H/GhSeAvCMPHZYLTkfob2TOd7Y+5mQU/wumvwq/2+QaL1Eab9zsyDvbqRhSjQfvBMAzJwM3NqyBuaqmO7lhibuEJKokT4aRvmPKURATvNhtV33iee0GrolP5gb0eZbpP2fXecVm+lJCHLSd1CSwka7zMWwasNMerJuZRY9S0xHkcRTbpU/tT441GO20A+Tg+OewSGDFpw13K3vjK21EIe40dhvdI/kXW+ER88zn+DoKR5QCa+7uYcDzF+b9DoBHOrY/X2weqZRDJattDkEkiamni3wKKG089Cp6uj4WvlZ6z9PXoQ6Xo5CiDLbi9ttXvLrTzS+Jx7/EFVhsTtOb20krMGbrIOmN355EOUaiWd1sb8orUKUkiDDbZOtCafzpMAPcDMxFwGgQ9tmWefq7sE7Dp0DgPkFUNO1ioalmuToX0Tr69mck/98W6bfBQ2PmOB5KI/olchBrQKmJYw1oYIsh7Q/CEc36bNL9q8O X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1678; 6:fNB9Bj/nA4PkUJCgWR2SCvNlTgfUW06N8t+jxXw51hLEhfqP5zmhHvJydqrXT18uTb+qVWiX1D+mp7lLfEPutmm0z2FRI2TEApRRyoR6VkTLXgZ2D1A5XOQKA/Mis9TgThbtguV6ZYQa7ert6QzaUyl0DGzVmwnO/P41j/XLxLr6Mos3lCsJWI5LNZXy7ynFeqwtmpzqv/iM0/8UszHXQthOMZ+e/7dqn0GL3+lpp0zG290zr6WrXYnJO3o/Jm5IVq4Gau7KWG2EvBVRYIir1J+uBBt51I9tEz9WFgnqNUD7ILWdwJ5IfDvVNqrWOxcAM6Mzgpz1pvaSun1ezqVyloi+CJaw/PoGQoJkEZQDfuDW6hwplY+FUX9oVaBnv3rYOQr532i9cTpAelZj/qN0N+4Hpf1ny1mN5uoplGbO1K4=; 5:QMm+nlXFClU4tenRtpX3q4uxDVNcmPDw/DBETw4VgsM1+UVpl6iqTPHQgdlobb6IlLC9cY+8Mu6SXlB4szruNUjQHm2D30EmbsUBWD3zd0GXlLYaQIg8+s/aGGD+flI7tKDV0ESOcIBpBBU07M3W9g==; 24:/gZTisHKTPGRDFjtB52BTFgH8+lWvG7eAk8r30M7So7W3x1d/2nHAyESqS0JQ3hmlfiJmybzFJdRjeTBZSgNj1cLF+HnI+7EdgLQJ/iBL2g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0801MB1678; 7:HzajmgdmXmyMg5OusnCrnwU8U73IFpkIqek76wiSmUn3EN1bJfcPPruMNXc7nUtXHfJUcMbLKvd1U4cZZIvFb5TX/yersTQYVoCVP1Vrgj4dFHlh/oLDiFeRy36S2qdGrzerw8DKYfxIfEdIJaVoW3BQehRKaQTdr8XMUMd+LGAspFRYGppPvNHKAd7eIjMXFIHjEqENr0NMEtjAFhxU5VMILfvK6iBeSQcq0BHd+WKmQ8W9Ree+08G19YhIcvy8ddYg4rZ24jbkW9jeSKnrCjV31tva7ACao+0B3P1wv6Pt/WjEnqu6nZByn6/GSt96rOFVJ/syrwZh46BUJ58t8w== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2017 09:43:46.0984 (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: VI1PR0801MB1678 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] xen/arm:alternative: Register re-mapped Xen area as a temporary virtual region 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 While I was using the alternative patching in the SErrors patch series [1]. I used a branch instruction as alternative instruction. ALTERNATIVE("nop", "b skip_check", SKIP_CHECK_PENDING_VSERROR) unfortunately, I got a system panic message with this code: (XEN) build-id: f64081d86e7e88504b7d00e1486f25751c004e39 (XEN) alternatives: Patching with alt table 100b9480 -> 100b9498 (XEN) Xen BUG at alternative.c:61 (XEN) ----[ Xen-4.9-unstable arm32 debug=y Tainted: C ]---- (XEN) CPU: 0 (XEN) PC: 00252b68 alternative.c#__apply_alternatives+0x128/0x1d4 (XEN) CPSR: 800000da MODE:Hypervisor (XEN) R0: 00000000 R1: 00000000 R2: 100b9490 R3: 100b949c (XEN) R4: eafeff84 R5: 00000000 R6: 100b949c R7: 10079290 (XEN) R8: 100792ac R9: 00000001 R10:100b948c R11:002cfe04 R12:002932c0 (XEN) HYP: SP: 002cfdc4 LR: 00239128 (XEN) (XEN) VTCR_EL2: 80003558 (XEN) VTTBR_EL2: 0000000000000000 (XEN) (XEN) SCTLR_EL2: 30cd187f (XEN) HCR_EL2: 000000000038663f (XEN) TTBR0_EL2: 00000000bff09000 (XEN) (XEN) ESR_EL2: 00000000 (XEN) HPFAR_EL2: 0000000000000000 (XEN) HDFAR: 00000000 (XEN) HIFAR: 00000000 (XEN) (XEN) Xen stack trace from sp=002cfdc4: (XEN) 00000000 00294328 002e0004 00000001 10079290 002cfe14 100b9490 00000000 (XEN) 10010000 10122700 00200000 002cfe1c 00000080 00252c14 00000000 002cfe64 (XEN) 00252dd8 00000007 00000000 000bfe00 100b9480 100b9498 002cfe1c 002cfe1c (XEN) 10010000 10122700 00000000 00000000 00000000 00000000 00000000 00000000 (XEN) 00000000 00000000 00000000 002ddf30 00000000 003113e8 0030f018 002cfe9c (XEN) 00238914 00000002 00000000 00000000 00000000 0028b000 00000002 00293800 (XEN) 00000002 0030f238 00000002 00290640 00000001 002cfea4 002a2840 002cff54 (XEN) 002a65fc 11112131 10011142 00000000 0028d194 00000000 00000000 00000000 (XEN) bdffb000 80000000 00000000 c0000000 00000000 00000002 00000000 c0000000 (XEN) 002b8060 00002000 002b8040 00000000 c0000000 bc000000 00000000 c0000000 (XEN) 00000000 be000000 00000000 00112701 00000000 bff12701 00000000 00000000 (XEN) 00000000 00000000 00000000 00000000 00000018 00000000 00000001 00000000 (XEN) 9fece000 80200000 80000000 00400000 00200550 00000000 00000000 00000000 (XEN) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (XEN) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (XEN) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (XEN) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (XEN) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (XEN) Xen call trace: (XEN) [<00252b68>] alternative.c#__apply_alternatives+0x128/0x1d4 (PC) (XEN) [<00239128>] is_active_kernel_text+0x10/0x28 (LR) (XEN) [<00252dd8>] alternative.c#__apply_alternatives_multi_stop+0x1c4/0x204 (XEN) [<00238914>] stop_machine_run+0x1e8/0x254 (XEN) [<002a2840>] apply_alternatives_all+0x38/0x54 (XEN) [<002a65fc>] start_xen+0xcf4/0xf88 (XEN) [<00200550>] arm32/head.o#paging+0x94/0xd8 (XEN) (XEN) (XEN) **************************************** (XEN) Panic on CPU 0: (XEN) Xen BUG at alternative.c:61 (XEN) **************************************** This panic was triggered by the BUG(); in branch_insn_requires_update. That's because in this case the alternative patching needs to update the offset of the branch instruction. But the new target address of the branch instruction could not pass the check of is_active_kernel_text(); The reason is that, we haven't registered this the re-mapped Xen area as an active kernel text virtual region. In order to update branch instruction offset, we have to update the Xen text section. But Xen text section is marked as read-only and we configure the hardware to not allow a region to be writable and executable at the same time. So re-map Xen in a temporary area for writing. The calculation of the new target address of the branch instruction is based on this re-mapped area. The new target address will point to a value in the re-mapped area. We haven't registered this area as an active kernel text. So the check of is_active_kernel_text will always return false. We have to register the re-mapped Xen area as a virtual region temporarily to solve this problem, Notes: This bug will affect the staging, staging-4.8 and stable-4.8 source trees. 1. https://lists.xenproject.org/archives/html/xen-devel/2017-03/msg01939.html Signed-off-by: Wei Chen --- v1-v2: 1. Show an example to explain how to hit the BUG(); in branch_insn_requires_update 2. Remove the 'new instructions' in commit message, these words is not correct. --- xen/arch/arm/alternative.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/xen/arch/arm/alternative.c b/xen/arch/arm/alternative.c index 1d10f51..96859fc 100644 --- a/xen/arch/arm/alternative.c +++ b/xen/arch/arm/alternative.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -154,8 +155,12 @@ static int __apply_alternatives_multi_stop(void *unused) int ret; struct alt_region region; mfn_t xen_mfn = _mfn(virt_to_mfn(_start)); - unsigned int xen_order = get_order_from_bytes(_end - _start); + unsigned int xen_size = _end - _start; + unsigned int xen_order = get_order_from_bytes(xen_size); void *xenmap; + struct virtual_region patch_region = { + .list = LIST_HEAD_INIT(patch_region.list), + }; BUG_ON(patched); @@ -169,6 +174,15 @@ static int __apply_alternatives_multi_stop(void *unused) BUG_ON(!xenmap); /* + * If we generate a new branch instruction, the target will be + * calculated in this re-mapped Xen region. So we have to register + * this re-mapped Xen region as a virtual region temporarily. + */ + patch_region.start = xenmap; + patch_region.end = xenmap + xen_size; + register_virtual_region(&patch_region); + + /* * Find the virtual address of the alternative region in the new * mapping. * alt_instr contains relative offset, so the function @@ -182,6 +196,8 @@ static int __apply_alternatives_multi_stop(void *unused) /* The patching is not expected to fail during boot. */ BUG_ON(ret != 0); + unregister_virtual_region(&patch_region); + vunmap(xenmap); /* Barriers provided by the cache flushing */