From patchwork Fri Jun 16 18:52:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 9793255 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 18F4860325 for ; Fri, 16 Jun 2017 18:54:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0BFB32865B for ; Fri, 16 Jun 2017 18:54:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0065228670; Fri, 16 Jun 2017 18:54:33 +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 763F52865B for ; Fri, 16 Jun 2017 18:54:33 +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 1dLwMD-0002Ac-3t; Fri, 16 Jun 2017 18:52:33 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dLwMB-00029K-Iw for xen-devel@lists.xen.org; Fri, 16 Jun 2017 18:52:31 +0000 Received: from [193.109.254.147] by server-9.bemta-6.messagelabs.com id C6/C7-03557-EE824495; Fri, 16 Jun 2017 18:52:30 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1VSa0gUYRT125kdR3Hlc1W8Lb5aLc18loVQgZW Q/VDLIDF/6Kiju7QP21nDEEFFTQ3CXEndxFflq0SzwNA0kwzfmJlFRJFZPyQTy1rUpHYcX32/ zj3n3HO/C5cmpHmUjGYz9KxOw6jklDWpCNh7yG/eOyw2cKk/OOTO4m0yFIUPdK+KzqALYqUmU ZuRIFYM5htQ2gv3jOXs31Q2+iorRtY0ifMIKFqoJPkCYQOC1jelBF9IcYEImqofUcXIiqawL0 zPL4mKEU3b42h4/lfG0w64VgQzNzHvJ/A8Bb3jo+t+EXaG2vq7BI9JvAdmpmZIHktwOIyVv6f 4HCt8GvI/rNNSM3112bSOHbErNL/KEwt2OxiqnCV5O4H3QVtXAE8T2A0656vW0wG7Q6fJRPFf AFyAoPFJjaWQ6QnGnxOWgskFBsaqSAH7QH3jMiXgCMj5uEbw+YA9YDgvUqCzoLnCuNF6wxIMz zyE/AYK7r/9vJGjgntlL5GAQ+Ba3R8kmEbF8K7QZCkUJRimyr6JBJcz9C0Xbgi3xJBrmCZK0H 7jjk2N25sad2xai4gW5M2xususzu9AsH+iTpmq0KsZpcovKPCwv5rlOCaVVTGJnH+SVt2BzCd hYX6PUe9ibD/aRYvkjpKF2ZOxUttEbfIVBcMp4nXpKpbrR140jesHcs/JSI1Ww8pBMuMVFiu1 07GpbEaKUmU+sU0n0DZyB0myp1mWcGmMmlOmCtIw2i1zkvTwfZgXFOmarbbN45xELjJ7CTL/S WqTxurUSv3/+hxyopHcXhLNp9goNfqt9DnzYJF5cPREKD9Yz2xLsmzUmhLUHu8g4+a+d3vF6a 0aimJaej6Vvx5pqznhQq5ltVrnWCxWHz1PLCRMljvaEit9Xb4rSYTbUndHyVDkSEHUl2Nz111 cHxxhPH+ZWKeYuL7SU24lD5uGFM01g8ervTKfRl3y+2G3enH8YLtVpuGs3KBJax/SOoQl1yVX RKB+dznJKZggH0LHMf8AzS7eCJcDAAA= X-Env-Sender: Thomas.Lendacky@amd.com X-Msg-Ref: server-9.tower-27.messagelabs.com!1497639148!108193796!1 X-Originating-IP: [104.47.38.53] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 4015 invoked from network); 16 Jun 2017 18:52:29 -0000 Received: from mail-bl2nam02on0053.outbound.protection.outlook.com (HELO NAM02-BL2-obe.outbound.protection.outlook.com) (104.47.38.53) by server-9.tower-27.messagelabs.com with AES256-SHA256 encrypted SMTP; 16 Jun 2017 18:52:29 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=+j4DHpBvkpagfG2C6WeYeDzaNeW1EZrhmMM093db8uk=; b=b5b/8C8g4fIErkR1ZcnPsPWofdef2L5ij0adztSLtYQTx8fSmCfQ54B6/fAmcpW1x4/icZixcaSRXQRia+scIR56glSnHcefVOm1SnWfzQL7GGLfeAaNMHih7aXuBobdNPGL/7QY5F+jJMF/FX/YgviS4SnQ3i2ZZNpVkdOdLmc= Received: from tlendack-t1.amdoffice.net (165.204.77.1) by CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Fri, 16 Jun 2017 18:52:23 +0000 From: Tom Lendacky To: linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-doc@vger.kernel.org, x86@kernel.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, xen-devel@lists.xen.org, linux-mm@kvack.org, iommu@lists.linux-foundation.org Date: Fri, 16 Jun 2017 13:52:20 -0500 Message-ID: <20170616185220.18967.78204.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> References: <20170616184947.18967.84890.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR11CA0020.namprd11.prod.outlook.com (10.172.17.30) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR12MB1141: X-MS-Office365-Filtering-Correlation-Id: 5c0f9ba7-1d51-441e-9d77-08d4b4e8d527 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423075)(201703031133081); SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 3:qDb1S5DWzBWfa85nlKJjRVUhEasHBe7jIPaXBRamXe/K63dU6AQ+6FdI9HUeC5mULPZvByfWW86M70iAI1mIMwJh7TdWqNXnPIlVEwALDfcPA8qRKRu3MIzyp5R/9vngQDkraioN9oRVpdXXuwZK5qvNLL3KIpOpQ5LKQZbEj1/yY2ET4dpCxnjVxZqT9pjQJnBCbnq49dU/5tkCMisC6stqgem0MkeMACw6N67wtKcR11g1Jb8jawxvnXSriowTJbtpPnu2MP9z8LLTmaJbqzG/k/F27LnRi1ZG0HcT+Ap6PFD6yF/7EDfcF+aaNEsS2or5QqtO2PLkdo/VHHLxU6L7gVjnwSyLhbiFabKSSVs=; 25:EUJphTG09vz20EfgG6zltlzfZOq8COFknAkvDBefNgsT0OhJH8APIQiZ05fz7M1tyXHnvDICrV2/+NlY6hTjZbOyXPjElT+sHCYA+A9aWDMRaAx1pBQloHFfdsQOPw6mTFAAdQAxQvAopxnPma8vIH6OQjAvj50sXQxBdtlAc5Rv5i+LLdK2MUdyPW/pbbXcQXqDzPg+IPbG2Fw1uS1OcI6YQvDde+2ULLHrglPsecprOY27uzRVl+iDWhy4SF6WMspjIb9doEYzfsvtuABsh9YhmfzQdhqvlNRVKTnia7Sgn6v/Zder+bMGOyEd4Cdan9emuS77g8S7UiyKSonfQeav3YVXxm20/pdxG7ppIqgXidMphH8rXD54KRVjmbKf+NUXBBljRpsK8YoAZMCP6hB56oOLwHH4IUWbFUtNTNdkyv1NdBNdh3c+GwoONtf++U9aXcTC01uAbDFeo1w+mYRSyJhTN43pOmvciYcj0ik= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 31:9HTQ/VVkl29UL1Cquo03UAsefHUJtj6QM99iAGjvxsojrWFx32yOL64YXyTH/d4xZrS8RcW5BPSZ9vZps5LTI2AgqRETDWQP1O5Th6nxQPAk+nmHpGvZzYHcIkuIcy6YEA2hHHRhk8WkDExJNQ2XTNc2WzP1UFoBS5T5x6fABzoEBiN5lM5XRj+XHeOgNuNGLPTTzk3W+9QL5DgdX+1/m+Garj5q7lDUVphI2Mm5duQ=; 20:yEnH/pCKhyVMoy9gIDNPEOc3+LT8ed3eVJYfN2U2WPFIMOsKMNt/pEFdW0+soj8YCgKdGf+U8TSmiP8JTSREudBxTw6GcqmJ2SrBNZ5vXA8BWypFCpr1f9ZHCNA79Og4e5/xsv2JcivD1+TN0M816DQBPIZgCVH+r+Ga7558VIHUZHzRR3sHBqDRbW+JqEzvksDGwCVLQVNAVHpp69Kjy0Fx/BLdK4nDED+R6UIx8T3BJYOOAX4AjYKOx8tMLzqu14hAwPi2m5PuuT/50/ettYGiNaG7f0RlJPfw/aucL3VqeKUjfzyYwxFIpshIya2IqN20dWN0uDJX6JvGvSjyAG6ae94dWoCrVDKK7Z3IOumXjMQ/o6jaoKPp7zllDHpelAWDJe6D5A+i7HQvgM9XMtZEl/0GnRW2jkXssTlM5vbgCiiV4kqjtfilBQFbfFOSzaPg3ygx9N8XPBm03BvlLdVP0zivHIJKAwjQJIdOBdxPYYmgkzMvYdCt4ncDfW12 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR12MB1141; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzQ6ZTRTeWFodXNOMG1KRTRuUHBzNWhnd2NIVWoz?= =?utf-8?B?aTJSc3Q0RUtmRzlVd20wT1pJWGtqdXpNdWdsRVpkM0JEaTRndWU5NDdpUE1q?= =?utf-8?B?djRJQmw5OWhEUEg3Z0ZyaUVZaFQyaVFMYm40UUI1djhaaUFMSUl6OGRhU2pa?= =?utf-8?B?eG1UU0JEa3JjT2pYNGhDSHN1MjVobDI3Vm9aUWRXWUpxYkp4QUYyR0I3cysx?= =?utf-8?B?eW5WUUJZb01yVFU1QytwVXRQcEdaNDYwVkQ0cUVQZGFnRkdmY2xVdjEzM3d0?= =?utf-8?B?QTVDOGFiaXFCL2s4MmYrZmFpUURtaDlBWmMwcFIwLzhSVlJLeTcra01GRjVt?= =?utf-8?B?cEFMekdvbzUzRFJUUWFKR3d1VWswQVJiZVIxb1p2U1JCZXF0R1VkYVE5UDEv?= =?utf-8?B?WldTdUlZRUJYcG13S0ZYTzd4ME9KUkVWMW9YcnF1M2NmSWpWdDdJWmJWTE05?= =?utf-8?B?V0Foc1o1NlBqNVBxSjZLbWVNZVRVa2RpU1V2cmpqbDE4bU9wd01XNEtoNkIx?= =?utf-8?B?b0N6QUd1WTJjYkhidnFKS2tVUDlWRnJCVHRvZHc0bVJ5SHJOUllabjBYeDQz?= =?utf-8?B?WEhONE04RWRubUtoQVgrM1ZkbU5UY2pjcHlZWXFaVUZNc0hPU2ZocVpKQ2Ny?= =?utf-8?B?MWd2bGlod1VOa28xUHR3K2g2WHZ0VlkvK1g5YU5MNW4xa1cwM2Q1dUJ4R29t?= =?utf-8?B?UzJzVWp2NlJ0V3cvK0NINHVvLzB6c2kvanc1NHdaeHJYYVlqdmowMjBEY0V2?= =?utf-8?B?b3pFd09ocWV3NHlXb0dobXVKTG5DUkUwNUwvU0w4U0t6bXFuejFsd01uck9t?= =?utf-8?B?TDJtZytqSnZiNHVzZG1NSFpTSFF1QzYwZkloQkR6Y25HREhSR3dha0htTjBl?= =?utf-8?B?M0wwanY2ZmFZM2Rna2VxYVRBb3pReDlzdXZ1eEpPZjNnNTNGeWpOOTFWb1A0?= =?utf-8?B?ZVJCV2YrVWtNQWV3RVhneTQ3RjEyNjVqZkxrNHhkYnUvT1hXaHA2Q1N0MVd3?= =?utf-8?B?bHdxNlJtUVJrQTBjdndFdXpKSTZNb2pFbFMwbTNNbGJOaGd2TWpMSGtnZ21D?= =?utf-8?B?Z1VPaFVSRnNmT3lLZCtSS20vS202V1RPVENoQ2JGWWxxRlRibFg4djdaSUtx?= =?utf-8?B?U3R5U1QwS2ltYWl1K0RVc0FRdFpsN3BxdHV2MWdyMldHenBENGNxTDd4SE1y?= =?utf-8?B?ZHlxVE4rWE51SlVMN0k5U0V2WkR0bUNCdjZjQ2lRYWhkejdudzBTZGRlTWQ1?= =?utf-8?B?UUVWRjBrak9QcTUrUnJjZHFlNHhBdHUyaFhPYUN3U1pZUHRoR2FjVTQ0Z1lC?= =?utf-8?B?bEpuUTg5T1JnU3VCRDBEU2JhbmRTdWt6UVVuam9teEU4TnVVdTgzeEFiVkpU?= =?utf-8?B?dExFSUpENGl6Q1Jkc1hhMmd3bEJwU3BWQnQvSTA2Y1I1UlFBRWh3d3RTRlJW?= =?utf-8?B?dnBKTnI0ZnhPaVlnMGhZMXQ5ZjlBd2lBUFQrTUJXbzg0WHRYV0d1OHFnUkxQ?= =?utf-8?B?SDdtdUxFTlJ4N3pzcTYwc1c4dkoydHQvQkpUTVIxbm55S01BOGNDR3pwbWdF?= =?utf-8?B?b3I5VWdrSWdtMUhvUjgwamsySkVVUVNUWjNSZnRwamxmZjNsY2haQ0RwQU1O?= =?utf-8?Q?O5HUywqXyGRjInVW8t5?= X-Forefront-PRVS: 0340850FCD X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39450400003)(39840400002)(39400400002)(39860400002)(39410400002)(39850400002)(54356999)(4001350100001)(50986999)(305945005)(86362001)(76176999)(8676002)(81166006)(6506006)(7736002)(4326008)(189998001)(83506001)(25786009)(5660300001)(1076002)(230700001)(9686003)(3846002)(6116002)(47776003)(66066001)(2906002)(23676002)(33646002)(103116003)(2950100002)(7416002)(50466002)(54906002)(7406005)(110136004)(478600001)(38730400002)(55016002)(53416004)(72206003)(42186005)(53936002)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1141; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzIzOmNHQUZETUlyYzZxZXU5M01lK0VobGsxeVlr?= =?utf-8?B?aE82V0JJU2hxWVRIaEwwZWlVZzJtS3RsZTJvZHRNQ3lleEJ4ZXl0Z2JWSnUy?= =?utf-8?B?TkFKc0NiZnJNVGtHMzNiUUY5KzJoRjZmbmZySlBtZ3lHNVZCYU1NWXJuTlBx?= =?utf-8?B?amRNOU5kTTFFRWJSeThVWE9uUlc2bW5WUHVqTXhKanlOOU0xUVF1WHRGQ1Rn?= =?utf-8?B?c1YyNTZPeEJmYzdpYUJGRndoRWdjV0lpNjVLaG93VTBvWnRGOS9jQ0d1dzg3?= =?utf-8?B?RFJqODV5cExCOE9ja3M4aDkrdGJVZEtVM0Yxeng1U3Jod0RJZWtvWTZRWmx6?= =?utf-8?B?RVVvTjY2MFVyK3pITkpqNjZYUFg0RUx2RUxJT2tMSkhZdFdRMHFROExtZ3NL?= =?utf-8?B?dXNTUVBhMmxRVFZoMFY1dEV4aVhNT1NJZ0dWZWx2c0VFNDZmV3MrY2pjVnJN?= =?utf-8?B?SkxIMlBqdndvTnJmUXVMdUptVHhyWjdBdEFsazhtemFmbjdIQjRtUzk5Zkh2?= =?utf-8?B?dGNGNjc4UG96ZXNOV2VkbGlNcjIvVDBwMHhOb2ZuS2dPaW5oOHJQUUkrMjFq?= =?utf-8?B?NHJjaHVQNEVoK3VVRnppdGZRYmJRTWZNMHlZTDExNXpiQnRWZGRVbDNabzhM?= =?utf-8?B?ejZia2pNeVZ5a2xNWitBdzdJcUpsdW9paWNZaTdKTW1lMkU2SUx6ZUZ3SVhV?= =?utf-8?B?bW9jMGdSY0ZjUkRNZ29HenIrd1F1NlhzcUdIakVVRWpmVWpEZ09rNkVRTjI0?= =?utf-8?B?K2cxNzhrQ0RQSzlWS3NtRTA5dG1GTk1lZk8xM3pIcTlhZHdDNUVKcmNQNGtn?= =?utf-8?B?eWxRaUN2aEJzTlBMZGNIVUovYlRvZWFtOWZsN1Axb1RXdVZ2dnRDL3YvNzFY?= =?utf-8?B?LzNjK2MzbVRuQTFpbHAvWE5sZ1BOUkVNaHRTV2gzeEE1SFJrakx6eGhhZHcx?= =?utf-8?B?dUNUVUxRTHV0Nk90SXRRdEs3cnJwUmxUdEwrSDlRNEV3eGh0SjN4UldBaFhF?= =?utf-8?B?S2NydFBiYUtYR2xnOXlxSVNJRk1BRCtBZTVqdjdVNHdhaVh2OEFNNmU5eTFO?= =?utf-8?B?VlMyT3pGMWxGcERSYkhVM3Y4R3FWNGN3clpyamNjalR1c0xtNEFMWFB6ZGVL?= =?utf-8?B?OWtNaW1KZ0R2a1E0MFlDK0E3ME14Wm9pZ2VISU4vNUpHMU0rVDA0WUE5UXFQ?= =?utf-8?B?ZWZCNmNFWDZRWCs1RUF6S0QrZDJQU3BLRUgyNEpBL3FSQXNtRFNlYkdLVVR4?= =?utf-8?B?dVVQenpzc29xUHQrTjR4N0htOWpBN3ZtdjBRcUcwczgrVXZEbExjc2hoVTBT?= =?utf-8?B?ZjZWTlNBRkVoWmhNdkpnZ1l5SE51N0YwNFFFa002R0tCNUNNK3FFbWVzMEhI?= =?utf-8?B?RWxhYlNSeE5ENlpiMXk1c0U4SzFwL0UyK0hFcTM3TW00RDZ6M2w5NnM2ZitQ?= =?utf-8?B?dWdCK2J1RmZnZDJ5Um1EMDBIUElDVTlEdThFb01CbnR6OGoyVk53MUp1U2No?= =?utf-8?B?SnppNU8wdncySjgyaXBXNXEyN3VjajFCTFZTTm90c2NkNUlySTZETmtDVjRQ?= =?utf-8?B?T1VxT1BESGZpRzJ3RlBjZ3pwR0IySGM0cWtIcFlwWWZsYUhwT3lLc05peXBw?= =?utf-8?B?R0l3UnkrNGk0YjN3WXFpOXYwQXpnaDEyTDQ3UXpvV2tmeWRRem82TUZRPT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzY6b1NlZHJXaXZsb1VVUzVOaGpWeGNlTWZpNTE2?= =?utf-8?B?TW1UczNDZGVjNFdOeVovaEJtMFRCay9aWlYzSVAxa09DSmVQR2dEcmI4aHB4?= =?utf-8?B?Z0Q2cmx3MHN3anpETWsxR3JXWUNCK2g0TlFLSUxDYjNLd3FvNG5aNEVhM2hY?= =?utf-8?B?WStmc2g2Y0dFODc5MW1xS0cxVjNQQURLcnNBNnI4UzJNb2oxaDhtRWRTdW1h?= =?utf-8?B?YmFqUGVIczNpRUtIMHN2YS9ocUZXYS9nSko0V3JkbHpsVHhWTm1zbmR2YTV3?= =?utf-8?B?ZjN1TmtJZm85cm13MWNJSHMrNTZtQVJwT04wenFkQzNiKzNiazhNSWZIdkJF?= =?utf-8?B?ZjhGU2VSbXU4aTdwbm5IN05xYktUVmMvSVUydlVjRFBWRUkyNWhFQ2Z0OGZF?= =?utf-8?B?Mnk1dytUN3pNclBxMExLNHRBZ25Fb2FaNk5RK2NpbmlkQzNaeUZtTnVVZWlv?= =?utf-8?B?NzNxL1VLWkpxZDEzQlEwY25FUnlyTS9GK28rWVE3amYzNjJ4eDhaYWdrSS9x?= =?utf-8?B?aFVMR1ZBZmpQNUsyWEJFdmhwa0RtNUt3TGlaL1FrOXIwSHIrcDN2MzlNTU95?= =?utf-8?B?ODYxQ2J2TW1BZGpFdjhtaWpSOFZGNm1ySGRFNlkwTlQ4M1Q2b0tEd25IWDB5?= =?utf-8?B?TlVjLytiZE4xOUNXTDdUTkdhME9vMVB5RUFJaWZaZ1FOaDZZVXluSVdFb1Ew?= =?utf-8?B?QXAwZzlDL0VXNXpPWUErMmEwdUZUeGZSVFlzTFo1TXEvSngvZ3MzM2hjNGFo?= =?utf-8?B?QThSZEw1RDBiRXBEbXVDcW1ISHdMWUdSeFZtNEVKVkRISGc3VXRIK1lqZ0pR?= =?utf-8?B?ampXTmROcEZmcVprbHFkWG43ZzJmM0xSVWg5UzVaTndnQS91MW9YdklKdEtn?= =?utf-8?B?enByU0MwTm9NazYyeDlyQklOS2RLRVFoWitVT3N1K3JvY1RudnlSQkFKbzd1?= =?utf-8?B?ZWQrVmdSRE5XZXlqcUJ3VWl3WjZMbG1ZWGx3clhQUzBPWlgwMGxybEVTVzF1?= =?utf-8?B?R0dQaGxJSU1BUS82RW05ZEFXNmVqc0F1L3hqZzVOU0xDS3ArTWlCMXFWNkYw?= =?utf-8?B?d1ROTFowSUJReXZ3YkFlRHYza2UrTWxBSzNnS1pkbE5rWnRGSjVUL2N5OEZv?= =?utf-8?B?eFVWRGplWVVyT0liN2NvZ0xWOGxKdmtvMWFld20vQnpIWFduK3lvdFllVGlZ?= =?utf-8?B?RlVxamJqajJGbWVEdlc3SnlvTW85VFNCa2FJZHBxeWtJSkdlcE5HOGhLVFk4?= =?utf-8?B?RFV2K1B0Z3lrSU56dkVhWkNYV2p4ZlR4Y1QvTkJsb0R1SHF4NWxaekNrTjNL?= =?utf-8?B?K0hxVjhTckk2aThxdk9DbVBuS1ErcHBWbHNybzhEaGFRbURXNFJ5UDlCblRM?= =?utf-8?Q?SxiCTIO?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 5:2HvdMINpvLccRE14kpKGpC9OPw4p9F4FkeFPnXFpcGxz+sfvlHX6Vk8YbSAEnPTkevvXrMGK5Vlj+6lvtahDhixMpxbpGeTBRbC5QwKH09ShS6zki3HYzzpQaQQkvOmYcXK8Ey09kaHXR4dMiF1OInEMkKPWd3eReKaJS28r18ZH4UE/t3L4b/20nN3hQRSRAQZaQcd0TWJcLVe0Uy+sIbBoDRS5H2PYtXXdVNA1fFLq370V6y1fwfmnDxHEuZaBYpGwQkVe5OgrsEakjIWDAEvrNEv7y9nystVPbHOCVeAwzV2r2qXpsJrDxXTN+lgmTyQa+BUNDQ9+LC3MkVJUEXxKcmm3gPisNsawN+cq7qx5YRWQIKVi2GWnXfJbQkSVcFhmAOXhbjocEb9TEG43THF70/b9/8UIZa+CFwBkTAxOvuV6kLkOiHa5pFf5hTNwcpZaLj1fqCuM6syuF3geOJbAlQCWH2gcfYkqrllIqRrxPcPK8aAWFcrJ7JVhYF0O; 24:VC/Xjxwju0ABE5Bt5Y+J8PFZ3q+TdyUfIwp1EC4uiRAcsMF/olx6BTMjfv5tqy/VpWy9vUDVOIEWOuouKfLmjTJptI4NyrtEoU74PaQYsD8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 7:AccfevdwYepI/oSBZdNfwHsc3p+Fp0CVl7bx1WgGsTkbMldvNv/9ucMOIQVqxT24TkPrXzXjN+nDEI2VE152XwMKHB58JOZ42fkuOzFblPDzocU3kfdb5H5qi1sr0YgCLeCMcPL7XBzomOK/yKX/bzwoJtor/7d9SLSEm3Qk5XUwk25MkJuSt35ZOkfVZByzRfuL56UCjbaYiqHyhfX1JR911avZ0W+VlF9/caoF+S1OWCVPCXhEgalP014qZxRK/hGAXAJCUj5HU3KgTNDzZ9Mhpih1ZzoTJL/mdLtRjdZPKCYxjUJgsYckpQYvHAyrqfib5wi2EU7NHJcURlooFtyKGqWrQ/6tF1IDv7Q72V2BwI9c8kmOvxPGzGnEpcWTBedU2EjTPIedvLppxt0JdFJfM5yqiarYUA5uQRkuTJTZhkwqJGYydhCXORxcyl3Yq432m4DrbSb5nE8VIiuuVDt24xfZ4wXP0ki3wa1jAVrDIiaf3M2WUUY8EaL5DKLjuwnZCHowyjNTCFMFwROu/QCChkbcHoiURF8yuaEn6PS4/5gIarL6ei+U63urITIZuOZqS8ChAZciJvj/OhiKr77+vhUU1igAbe7x4x3NtCDSUwr2cBi3lAGgo7EImzKs+16vUpbNZerlpTHH2+orqlxMmNJxm0YU20dKZJCVmm+u8WEKMrpeX7pcDEaAzQnTfnftPseb8ZOjXjd6IBUQTmH87gPkgw1GTDxVQxulWLOpbSpp4HUdUULVF3Y4n1k0r653M+VNKD39Q9BJPG7scbXabHvE8M2RE0ZDv2QQuJ4= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 20:Osenkcz7TRlhYvekPfZNNMR8yQ+xNln8vm/ZwMwfP8hahqAkFRqa9MMOOQH4b2wYOV+dJ7hah8aMWr59jpyNGFJCFn5n4AneyQCalUtlPwRn1RmKNapCHEtPrb6vePSFPF2Br/pHrOLJcsgdPlBHD6k4TOHEzC+GH+LJmdZnEOe93vCKlVTTdIY2GWniCZIDeA5dYjbxh+GacJ8TvpYHUYaXVqzsMgPlG3bxiawgl8VLCPBQ27L4eE64q4giceUB X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jun 2017 18:52:23.4900 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1141 Cc: Brijesh Singh , Toshimitsu Kani , "Michael S. Tsirkin" , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Boris Ostrovsky , Jonathan Corbet , Joerg Roedel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Larry Woodman , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Borislav Petkov , Andy Lutomirski , Thomas Gleixner , Dmitry Vyukov , Juergen Gross , Paolo Bonzini Subject: [Xen-devel] [PATCH v7 13/36] x86/mm: Add support for early encrypt/decrypt of memory 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 Add support to be able to either encrypt or decrypt data in place during the early stages of booting the kernel. This does not change the memory encryption attribute - it is used for ensuring that data present in either an encrypted or decrypted memory area is in the proper state (for example the initrd will have been loaded by the boot loader and will not be encrypted, but the memory that it resides in is marked as encrypted). Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- arch/x86/include/asm/mem_encrypt.h | 10 +++++ arch/x86/mm/mem_encrypt.c | 76 ++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) diff --git a/arch/x86/include/asm/mem_encrypt.h b/arch/x86/include/asm/mem_encrypt.h index faae4e1..6508ec9 100644 --- a/arch/x86/include/asm/mem_encrypt.h +++ b/arch/x86/include/asm/mem_encrypt.h @@ -21,6 +21,11 @@ extern unsigned long sme_me_mask; +void __init sme_early_encrypt(resource_size_t paddr, + unsigned long size); +void __init sme_early_decrypt(resource_size_t paddr, + unsigned long size); + void __init sme_early_init(void); void __init sme_enable(void); @@ -29,6 +34,11 @@ #define sme_me_mask 0UL +static inline void __init sme_early_encrypt(resource_size_t paddr, + unsigned long size) { } +static inline void __init sme_early_decrypt(resource_size_t paddr, + unsigned long size) { } + static inline void __init sme_early_init(void) { } static inline void __init sme_enable(void) { } diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c index b2d1cdf..b7671b9 100644 --- a/arch/x86/mm/mem_encrypt.c +++ b/arch/x86/mm/mem_encrypt.c @@ -17,6 +17,9 @@ #include +#include +#include + /* * Since SME related variables are set early in the boot process they must * reside in the .data section so as not to be zeroed out when the .bss @@ -25,6 +28,79 @@ unsigned long sme_me_mask __section(.data) = 0; EXPORT_SYMBOL_GPL(sme_me_mask); +/* Buffer used for early in-place encryption by BSP, no locking needed */ +static char sme_early_buffer[PAGE_SIZE] __aligned(PAGE_SIZE); + +/* + * This routine does not change the underlying encryption setting of the + * page(s) that map this memory. It assumes that eventually the memory is + * meant to be accessed as either encrypted or decrypted but the contents + * are currently not in the desired state. + * + * This routine follows the steps outlined in the AMD64 Architecture + * Programmer's Manual Volume 2, Section 7.10.8 Encrypt-in-Place. + */ +static void __init __sme_early_enc_dec(resource_size_t paddr, + unsigned long size, bool enc) +{ + void *src, *dst; + size_t len; + + if (!sme_me_mask) + return; + + local_flush_tlb(); + wbinvd(); + + /* + * There are limited number of early mapping slots, so map (at most) + * one page at time. + */ + while (size) { + len = min_t(size_t, sizeof(sme_early_buffer), size); + + /* + * Create mappings for the current and desired format of + * the memory. Use a write-protected mapping for the source. + */ + src = enc ? early_memremap_decrypted_wp(paddr, len) : + early_memremap_encrypted_wp(paddr, len); + + dst = enc ? early_memremap_encrypted(paddr, len) : + early_memremap_decrypted(paddr, len); + + /* + * If a mapping can't be obtained to perform the operation, + * then eventual access of that area in the desired mode + * will cause a crash. + */ + BUG_ON(!src || !dst); + + /* + * Use a temporary buffer, of cache-line multiple size, to + * avoid data corruption as documented in the APM. + */ + memcpy(sme_early_buffer, src, len); + memcpy(dst, sme_early_buffer, len); + + early_memunmap(dst, len); + early_memunmap(src, len); + + paddr += len; + size -= len; + } +} + +void __init sme_early_encrypt(resource_size_t paddr, unsigned long size) +{ + __sme_early_enc_dec(paddr, size, true); +} + +void __init sme_early_decrypt(resource_size_t paddr, unsigned long size) +{ + __sme_early_enc_dec(paddr, size, false); +} + void __init sme_early_init(void) { unsigned int i;