From patchwork Mon Jul 17 21:10:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 9846265 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 D161A60392 for ; Mon, 17 Jul 2017 21:24:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 136BB228C9 for ; Mon, 17 Jul 2017 21:24:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 07CDB25223; Mon, 17 Jul 2017 21:24:49 +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=-6.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4E13E228C9 for ; Mon, 17 Jul 2017 21:24:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751775AbdGQVLZ (ORCPT ); Mon, 17 Jul 2017 17:11:25 -0400 Received: from mail-bn3nam01on0071.outbound.protection.outlook.com ([104.47.33.71]:3344 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751530AbdGQVLS (ORCPT ); Mon, 17 Jul 2017 17:11:18 -0400 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=C0YRtwn3VCp/e+6H07PefjPuvlziI0nzqtb8tb3Z8uA=; b=Mh8IVm8Zw7H6HeNOSPPRMxa6Eha4//AgFB2ODoADbrChqfUo6MkmsguwFW1G54OK9CpHdbcs6gIA1eeK/cpurp8ShnSa2Mcr8PrxiOc1I0M4pSCTPM86GF1fuwvD5ucb4bY8+uAaZRufCe0bcE3IiWROVld3wN+ttDurwUofNhE= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by MWHPR12MB1151.namprd12.prod.outlook.com (10.169.204.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Mon, 17 Jul 2017 21:11:06 +0000 From: Tom Lendacky To: x86@kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-efi@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, kasan-dev@googlegroups.com Cc: =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Arnd Bergmann , Jonathan Corbet , Matt Fleming , Konrad Rzeszutek Wilk , Andrey Ryabinin , Ingo Molnar , Borislav Petkov , Andy Lutomirski , "H. Peter Anvin" , Paolo Bonzini , Alexander Potapenko , Thomas Gleixner , Dmitry Vyukov , Rik van Riel , Larry Woodman , Dave Young , Toshimitsu Kani , "Michael S. Tsirkin" , Brijesh Singh Subject: [PATCH v10 06/38] x86/mm: Add Secure Memory Encryption (SME) support Date: Mon, 17 Jul 2017 16:10:03 -0500 Message-Id: X-Mailer: git-send-email 1.9.1 In-Reply-To: References: MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR03CA0008.namprd03.prod.outlook.com (10.168.230.146) To MWHPR12MB1151.namprd12.prod.outlook.com (10.169.204.15) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4608f4e7-490d-4c7e-9960-08d4cd58592e X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR12MB1151; X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1151; 3:JFWb2K8HfBxsf4XyofEhOnQf9wJ9dX/GuOO3Q9Q1GJZhcxpd749yh3PHBQC79WfmepUax0vcS8mxQgTd4bmKZL29Z7fuYPi4g0h6fxpv1SPPitJq5M5c1Iy0M/5HzuaO1Zt1iLXs4z0PZrlEkJjo0t4zilReqLKopF/4t6Jkn+XiQB9VkyKuVYlHioaSq1JCA6pECUEX/+rWdTFxpyTnbfTwExSlS4R5lxFfNRNff9kSP4++MVho1WgZy4D1VIZCIAaLvtLbDTBTG+SuDaHM+Zscaz2gTeiLivk7T1ohABKfEslsRsBIvsiKmsH4I7pKaToa29Psewq3/BvzjR23F8A1Jz9IzUYJR9Cg24AxRGwOYNkK6U1nAu4aAhoWNQBgD6ZTkuxI3B1hQqqNzWJ8JW7KsCBu7hm5yoMBGP+40vSbn2U4BDzfAQVciyfsIjICQiJbS+ynMUsFiH5asn126SQBVJSluoe+M0l1hSEgtwXYoeULkmMjnmWQ9UbAoEeP2R1MI5/6LYsLQLmPcTZihUahsuEJfiI1gQh2vlbto+/sh/1N5TtM42T/NaShtsXZjqBqMHpWk8L4wImDKBiVqXLzeJYZGRlzpX9iq0UCYM+ddjtyNOu7DMy9KqbAviu9WR3AX+COXB/fYK+jWmN8EY3oKzmIyYM/fkxmeFcdFhE1La8kl/JjjX2ZnqlpAgAC/q9XhqFI6RKHlKIj7RgDr3I9qlZaumKUKXMxn0sUqi+tM74N3E/sSzU3ZLDBIipSjVe7zVGvGizLdDFIxNr3OQ== X-MS-TrafficTypeDiagnostic: MWHPR12MB1151: X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1151; 25:AR31DRWM3KNenk7LTQ9LHJIG+J0LtZ2XsXzMygfFDW+zsf6NtRz+SIkSRfnxo8UnEjdoWq15bSnznBbZMjbAxTxc0T2Zm+Qa7GZxIJSsjecsTRb2CskJz7lNAenrTOx4B2k5+mEa3PN8fv7qCkfMhwkX4D0eHD6ax7xftbcZ3pmG5rsmNkdtVhJACD2PzoaXOkuu4yTxJC6de62jwpKIG+C4k1oFhXENocQEonHVxg18CClbqMNrxI+TIalyVSpitseGzovjYN+TKCZEQj5MuQfMXxHUMeISbaEyJM+s6MwHncB5AOQjQ5UjfEEt8Ro7iJba7FtdjzPOlOAk3iUP26gHc8KI0bmdri56RdT8qJWp4eKWijcdxmE6MGV2cCYWTZi6eJCTu4cWil57v2hQdTZzMd3UkJ4LpuzwJoWIsrhnAlzCvYGoqansrJM6dxcNvBnRuIl78J4DQtQ0EwyR08A9h+aiQDMBr1JwE5INOqKI+nTxFSXWHUxBugs02xG79TZhgKvBxNCi2+Ux4b9UFSYWCaHBDIct7tMF2fFi1KRqSzmKIKhqo/3Najr+6JXpHBG8yAF7+noRaObLUSNEGdYYkZwl7Vx8xFzd7PBstWZKk1QimbStYn49bBU/bjF1Ma96XVgwObOuqqT4osZ3/bQi+Jd3fSzxArO4EE7Sh2rCqdG79htyBpsE0E3YVUd0wMay9664FCLAhrkXaDUzqAwcTIBEKtpK/owTsMcaEY1S4JTAWzjcv3onwRQHe4T2zo5pUQs1YHyeW+TExHxFHk3DfiNMEUlrgABnVJDcgc5YyFn/mCLp77gpWzvDbFeQFm+Z9ZyuqIAIs0uTS1U36z/AVNnAS5Hr/s/EV7yzyYcOJ6UxYhJKyJtLHq/ZDjssRsL1pBVaEOrY9fMjYLliD7DIAbocjWGrYrrecFtLl jQ= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1151; 31:8wGoQdenCsInjnnQ7qxAqDP7WgfLCtBtBHhrOIvINqVrgNt7/jm+OMkH3bveuAKi3UMNDn4A4WEmvW0pHgIaVVtqMNe9ax2EaOTJmm59/+LdzYZH+N5ugTsCkWJB7osz25MtqYHh7nF2HF2TBysNo5Iuoeynly4wfzZDmPrjdoqEZ4Tj5p3at//ZnSUqI5PRFfpZaYn4L4MoJp1+ZI2JLBRp1pVIm58ebDm+M13aweSsNBNaJHrrBEb9RWeA5inlYtMa/q6HHN8hx1+QLnPWTBln7nZNShhjKKRjmMRW0bQnnEoMT2Catu/Qbgsf5osICYxVPs8+g22+0a4VF0P0vN6VJ4Y9+9PI+iiJoWu65anpGf4UYXv+DK3Ja8+DO0DEhqqZuNdhfIX4iEcPpuNGpFRHN/O/rjWzWU3z2O/sedqxnH+QJ2cyM+O7jlD1rEoebeAIvgcsYMVO8dsjVS/B2uEUVtVqQNbVUSRT6uT6HAYwNfQa5huVI61pxTHZCfRgOpHc1xg7j37SLLEgTs89OViTiSpFs0J2L5E8HJ8z91bEi29NG1d0rUwN6csWwwQmVku1rq/+ilk0gn1iyY+RhDTad67BOQmfmXx4DxVJnk5O3+Y30cDk4cZb3HyQqgwcJKpcflwp40gnkiYaVFTf/wZF5pIhWYm760X2HrddNjQ= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1151; 20:G91ZjZmrsrhS9hU/EeTd/KUk180lFFz7XxIKOMpEgUgsKp4zJa3f8gq1HZqyqDVW67Jy20SQfhUC6S6dJISnr4fOEvWBeOyxPhawVMIrs2xDb/vkfgGjOGXGOzn1cDr8s+kuIgFmKcdzhNo7IpS7gNUfPbo0M9bbacMmHwyF4ldf8dUxIFxBHHiqwOVA9GUWCF3LdVoBqhqNI7Y4W+UH8aQlfmJgtzwyxKxR3DSyEnBqEPX7b45SEuFFmL7/puKKZwWfUA13yvJGmi3GxMvPMmnd0RAGTM5no8TGwHUyvo3pW6XVoAFOdxOH6qu5DdZultUy5f0pAfFS26pu7PW+JgkwdgTfx+e/Bjn1N6DGgn3nKXdTWKxq+uaarfgE3Db2s12E60psj3ue9QrI7e4wuTUNRIvB1CZi4vuH4tb1flfDiBc+67fjeV8deUX+jQP9DfILxgDcZIRXC3QL10XqJtUDi6HDByXGqbw2Dt76H9Rev8v6/minaPkoVbVt8D00 X-Exchange-Antispam-Report-Test: UriScan:(125551606395959)(133145235818549)(236129657087228)(767451399110)(148574349560750); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR12MB1151; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR12MB1151; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR12MB1151; 4:LkBwC+2UgAwY9VqiDsJBbqR71PIt+92g6g9YyXQYbA?= =?us-ascii?Q?Y5PIXbENY/yZqM9FdVQ76PePd1iX3iMJStNoDyKxlhKBmvLJx5sSeBb7QbmY?= =?us-ascii?Q?wCEJ2yGwOswYyLdWJYoJiyLqcCUWiOvPT/P9MJ/kVXdAu/kuBa7ez0b7pViF?= =?us-ascii?Q?UZe3RYLqnwUEouGPWDNYtKtEiHVFJRE4k76nZLcBJmkqofRP7Ns6rP9jrq5p?= =?us-ascii?Q?uANy8lSGdf/TLsF5W4bSzDlWejG+6wXZIKM6aAzG4wNyvdPf80ykNmLf/yDz?= =?us-ascii?Q?99QM5L9h2iMQXn2n7BX4HAJRpoLOlHM47nwB73mCa9uuZjadgqFG+Y4gYCOQ?= =?us-ascii?Q?rIeD/fcrf3aFBoowHWSvfpyq1ETtRFQaF103O/fW++2gRutulJPmD48SwpPk?= =?us-ascii?Q?GHdrXuy/eSB1W47rkJuzxeg7LaMDXmNLnx2c4kM7Gw28YTc7Pc63YCFHgK91?= =?us-ascii?Q?qZyVJ6JnhxZvrp5DLR/E9qcPjsA7BziyoxF7SXy7y7tI7Q3q5mk0cLg3kWYV?= =?us-ascii?Q?ozfHrNKs6aOnS7IDWquL0Ehvc9QqsuDT9wmyRdpxKhqLofqZkmbif5E1aRcc?= =?us-ascii?Q?qawn4Y4DQLdbta0J6QAoyyMEJE8+OHaFqm/ahQgLWe0BM7Rdgg2X7tR4cIUR?= =?us-ascii?Q?WVP5T3bkJpm+5Wj+VxagJFgPry1LbFnQKKlL3nchU2SaKl44L8hXPg5eltwE?= =?us-ascii?Q?4vwRpsYiL/kU+Xte4HuLktqzGeQNC68igrJ32UmnLGcrOe6TwuhDeN7iFW99?= =?us-ascii?Q?O5dWaV+7mRGxrMQDWXp2oZxawNiXjY1BH2f2KY/1TnUOlieWD1PJGoqMQCQg?= =?us-ascii?Q?uV77DO2RELfdFG8SQIGC1lx0CIe30LEeerxXnhExABYnSGgWMXuJZKNu6atf?= =?us-ascii?Q?soo5HsGjHhOhbp4SFsbz5QPXF4hnGZY74PyXQHLMKduEMqW/XLClSd+CW/sm?= =?us-ascii?Q?/YjhU50448wI45OImPH6dhJlZReri05OYG4OJEMTTWm+goMsTUBP4xMhVSQs?= =?us-ascii?Q?7UDOpPrG1JY8106R0WMjqibQxWQ1GHiAAyFtIte2iQEPXG4jh/t1RtqM0ESa?= =?us-ascii?Q?Iszpe5TbI+mVFEOtY+tGFKnnLEJHbsQpUGrW7U5+KwLZFS1D/j7PuwOGitjB?= =?us-ascii?Q?7+sO6vLlWzL9ugYMp9Ye3kFwd9FMBkp8778wZk2C0Fz/wQVjEwGmcuwMIghX?= =?us-ascii?Q?R0A1Qzg0omsWLsSLh2iO7iyKgvA1MaHcS0+PjL0eH6Rc+D1PXv3GiQ4A7kTP?= =?us-ascii?Q?L7ei6pcwGsO9dI+h2OGhQL6M26tw37nvz2P2p6R2WyiC2h/aiVQE1nDxUa8/?= =?us-ascii?Q?DVaHNfoSEG99fnxyN7hgUZxaRD60o/AO2TOyQWK5wrGVbli6A9/UAhjmAK7Q?= =?us-ascii?Q?M4DScjmoD8uYsMhLwL6SrSzqM=3D?= X-Forefront-PRVS: 0371762FE7 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39410400002)(39850400002)(39840400002)(39860400002)(39400400002)(39450400003)(25786009)(6506006)(33646002)(54906002)(7416002)(76176999)(478600001)(8676002)(50986999)(6486002)(47776003)(5660300001)(189998001)(42186005)(38730400002)(305945005)(72206003)(53416004)(66066001)(50466002)(48376002)(110136004)(118296001)(2950100002)(81166006)(5003940100001)(3846002)(6666003)(36756003)(53936002)(7350300001)(6512007)(2906002)(7736002)(6116002)(86362001)(4326008)(50226002)(2004002)(309714004); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR12MB1151; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR12MB1151; 23:QrmySK4GDNdVcS+SpougfL2Vb9lHZLTIIc2v1kvz6?= =?us-ascii?Q?X6TseTIcEdwQPHBZ/WRtugvOr6B/jytvDfvXtsVjOqvuSWFkegcTdQ2v+SEm?= =?us-ascii?Q?PGoWFLOPSWxTd2onZ80SEn4sVYjmbXMoE3a5t491H6/sjFJZQKnF1B6X/9x2?= =?us-ascii?Q?38RH/zn03pnuKRheBUju0WBvfKB7UMXLaaAnpFM134iH5hODg7Ym8j+d7k9h?= =?us-ascii?Q?BMQ52Zta7AlnTx/PMw5ehZh+BGrENMMfQ/pXwwPjMcMQ3+hJ1IlSwNaeGW4p?= =?us-ascii?Q?DLZUmHW0k7d33C+hZOjEx9VX3xp0NMF5o00YvZ2bxs1Qh9n0wDSvnR1EfyFA?= =?us-ascii?Q?51/dQlHMFyB1AW6AjU7U0Ap/U7jMputkUsZKsI+cj1bbfST1JMMa8TV76l9G?= =?us-ascii?Q?KieU+cdcc/25uRg1hiG8FGqxY6B140Hu+mcWZEDAWYDZip8FEla/4pUmn8pp?= =?us-ascii?Q?D+rUtIGzqX7lVNBFhWCsfcIof6sTF+LFMTJWS7fmD7YDK6s2pgXBBIG/EUIN?= =?us-ascii?Q?bu8QjZFrQiw6bl06oaOZCeV25CbmS64tzodeayknYKxSP4bSR/58+5KbL5LL?= =?us-ascii?Q?9cRp9TbhhRl07Ahop7jCwHSWlfNeomnzd0440v8/Knz+gD70ny1p06AgcBFl?= =?us-ascii?Q?OoDiOKmM0YMwFIm/P5KP1D+g8/ki7VXoeCFb2zFONJ6sk8KLlWRpPTzGQZJC?= =?us-ascii?Q?oqVst3IAQHscl4FPHVX7wpB6secyrVnUB5CBzYWPJ5P5mEg+wAWABF4UC5dt?= =?us-ascii?Q?R3XkBLMsOpprxZ+9nV2o4NM0ClADFEy0j87+dvjRo1eUH/bUleIMdvvSMR5Z?= =?us-ascii?Q?C9XcK3Is4Qt00B8H+YoeBRYdJQVrh1XlMC2/fmwn3ne7FUtLo/PGpVe+Fq7h?= =?us-ascii?Q?dzMw159iIUdI3dUELLTz/uK4wBb1elJB+0J5zwJdSemzDpOYo5M4bXAY4ydj?= =?us-ascii?Q?swQwkGRIQJ145Rqjs7GIC8GeMAPeR7xilLFTP5/o9pmaw/CW4UECSZHqjheQ?= =?us-ascii?Q?I7quP4YTB8+NKhCIiY3aDqKzF1ZyQh98xemHBaYoKKagIUDmRpfvWmSRzQk+?= =?us-ascii?Q?OpSn32yDXo3g28mia7S3GM4OaQPiirQ/P+Q8N+BuGGyvIPKzd7IKddXUVpgl?= =?us-ascii?Q?CLoRA85H4uOr4lpmeTkSwh6Ae9pTMya9XQ2rUmyIyzB8wC9Qse2XFNllqC7M?= =?us-ascii?Q?iyq9/ivlD2fBQbl5Tt4uUxG9wxMwbPPmhDqEcY4l5ftrcUhx8zGleGL9g=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR12MB1151; 6:yjVMAWpfLAku2Ke1MbwN/mYZaowE0KLMAVkUsi1v6J?= =?us-ascii?Q?259q0qFPsESxDapfYrEBbgKRjlJRCYhPjARlGphPEY88dRi0z82eTrfV7JDV?= =?us-ascii?Q?YFw5Ndv/i7r9UgKuezfEkGG4Vvms2QfXNp/sJ6L3PFwGEpzs86lDAJEDW8rT?= =?us-ascii?Q?lFhp4Rp4uCZNvvZh2kjq6v4Ln9NaSQl7rDS50NKWfHzszoeQx2RdMBhEcDVu?= =?us-ascii?Q?ZDx1IKMNNjdu04f2dcHKjYK5LEPq2bRmkjQ1pSNkcy3JSUWHlPmHnEv+510w?= =?us-ascii?Q?6MHLxDP3kBTcyHCDPHk6+M3LJ3pczA+tOg7t0eOMkaIJgBivt3LXAd5eJWGO?= =?us-ascii?Q?QBaXTsf7XkiRPhrXoZb1xzVVo76kor5bvXzxPSZjLLy8R125OnP9s2kl3kRT?= =?us-ascii?Q?MhyT211lgiGWczF6rEXjHl0wMHWPdZnmy+tVHshRvL7HmcriNQ+7gpMx9o8t?= =?us-ascii?Q?IFiOqlfeA902i/mh1kj0kf/Aj0F0NCZpPatOHH/5LcyijQja/qINKLt9aNXY?= =?us-ascii?Q?/7aoIhvpS0/sngaOE5biiXDNQMU4lSnfHUHCBzx+cgqfnkWUORjWnusCdGvu?= =?us-ascii?Q?QVO89rnI4owtQRtR7qDWxBcJpFPPx2F/FVso6MKTFv+eh4WbPbGK5vynFYFD?= =?us-ascii?Q?2JmiswmIJajdavGMJt0xDD9TDkr/SVI1HBPHrHGOVwyrT4M72SVZ0ofZASNx?= =?us-ascii?Q?UgwmxpDCK9uWMSKSAjz8aTkqJl2wYxCLXfw9lIALmvck0losCnn3x3kBYxwd?= =?us-ascii?Q?dGGiuLSPrkyS9vq74esriPaLsQI3CJySrgANgOLsfI/sK57ET0C1KQzTy5uC?= =?us-ascii?Q?BFJ5Z8CxM1a3NAU2Aeb9t3wWFYOYEJ6LORYkwYTGoQYhoaLak6HK1rahmfVp?= =?us-ascii?Q?wTVA1fpKdRCSfXZOEpW5vN1EVcYeOhRHxVjJZ8scGJKSAd83Z2kF/Ctmo1h9?= =?us-ascii?Q?VPoVeEkXCPPaiwIfX7P9xdFIJsA6kAe7SXmEZYZP2RXw4Q/BhCowI1QynuhJ?= =?us-ascii?Q?NxpGS+KkDDlgY9P/fuICBk?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1151; 5:r6diSb1hux/17Zueqlz2ahGLkqUr8/RuZiGa1lPIdt/Mojvmf2i2tjIwb3SIeUcbszUaaqddmvS+J6gxOwD6OPylg0ymsMwWTXHO8ajisdNhoLb1OASpLlLAo9qfofKMc/indSzQ+GAJXK2gxG2Jg1vbT9wP1jXRJ/JWERYXWPxWG88uMVMm1TyrA6FENX6Gp4UELGDx8VHXJlFwjuUUlOonbWDur6k7Dx3WOCZKovwMabpf2+0zAazQXhY+74YKno++OeDLFtCqtpBKe8M1yo6MEuLvfSaBMEMAgGJP6H2gQZ2R1p9g0VMiwFUZBb/Uc30XBhg/TpcWUVA5H1Rl0y5xI2zo+oQlQ6PnDXtRcjWkoecrEuM6t9EHqwKGJnH6FgWi0yrzGXeVREiKBSLaKz2d0j0GXBT0qqcGF4y2ifg44Cfur6Q+7g/AgBVxCDE2LXKN8e5Lub7rwNFX9eq+KKbzz4D/v/H3QNDIQYpje5TVAS6K4RgnU2UCHdkMgNPl; 24:WBrUcQecDl3miWbspI8HCmFxW59mATIBLUWfOXPbmX0H27QazuorYvLiZstMyeG+f038vo1eH+9wvluTyuavIyqudZIG1mN2E8lh74Jp6Tc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1151; 7:Qe2rtPH0K4jtxpYs9/ikPKGgQtgo0gKPRrZHUoPorXtiQ7rGs8Njd5W7LN6pYq/Ph5KrTDeNj1XDvcxaCb8Z5t6M2umJ+YeKFd5RwSzFDRBaJOVDrdyBDNH4JcIKZ44so4Yu3TpMWbiz1XOo39KR0EDdA8O5YmSf4UWKUCOhlpXylXJ38X0rtCHwf8R+nx5+f3ROYQ9FTrB9jj1/rAQHLhsYhXXAcqdpTkINxBjTyTzIoZxVHaI6PayfdvsraouVc6NHuj9mB0RvrMKZnUvA2yxoQOFQ6a6FmyEhHROj+EdAre/mL+Q2Ukefe8McPsmfY1d5nO1PHIFmF+qBP3eS/zXFtNwI/+cIJw4w2He/XIUoTbKODmhnaU3i3+qAdq4ogm7Lb24mXHI4v16snCrhrcEKMP55AhPTSX/J43oq3VJmhX7Wpe78nSqGiWfU9hsgtw8jU0fMlu+HhmkOlvQQpMaN/DybNhLDUWJ1C/6dPy62LzGf0lnbnRNDOUbjKRGRY/6zqrwd0V7wafZtx6YPtgQwKXclsSumVQ1uDDVDrn4Vyfi0KmYOv2L1YrabFh9CttEXzJFJt0WXEmWQhAqOQ2hXLWphQniC1d0IIDV5zBa9tIiJr6zEOevjEBxmhfGBH7cgLUSkRHGHJ8cL4glDbbpsxPLC/Df9iDAhjnLizuLPFyUYezbCFNDu81ZkPOCn7cyANuRK9mPL5SS6dFa1u0Nq8EcLk7siveIvvDSx4EU+0lpJoTSsCAuxZ8syEQBrZhVDW/yA3QOA3CqXIQwlTeaCzDvTYxFvxBcSZ1rL2K4= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1151; 20:/xvemRLjGNcTt4u2Is9arvmu2whMNUffj10adoSoMiwu6C9kQbmZxFvzkuXCG8YlK4iaLc6I1RbRPALR6l56p89RT1wPgxu9+MbJdz2mib6Nq/Lzp75Z7oIXiDUKUSFlEoKYEJNAU8+AWT/6sNN41JoWOW0vJyhtGHtOPCwWi78sMlp70ldNnuau6cE/LZUmCgxYhmF3+RQsrgkdkgR2cQhYbxhFNhokSf9VPd08om+ek7e3tjuWQNgy50VpIZVn X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2017 21:11:06.8445 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1151 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Add support for Secure Memory Encryption (SME). This initial support provides a Kconfig entry to build the SME support into the kernel and defines the memory encryption mask that will be used in subsequent patches to mark pages as encrypted. Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- arch/x86/Kconfig | 25 +++++++++++++++++++++++++ arch/x86/include/asm/mem_encrypt.h | 30 ++++++++++++++++++++++++++++++ arch/x86/mm/Makefile | 1 + arch/x86/mm/mem_encrypt.c | 21 +++++++++++++++++++++ include/linux/mem_encrypt.h | 35 +++++++++++++++++++++++++++++++++++ 5 files changed, 112 insertions(+) create mode 100644 arch/x86/include/asm/mem_encrypt.h create mode 100644 arch/x86/mm/mem_encrypt.c create mode 100644 include/linux/mem_encrypt.h diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 781521b..ba7b93d 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -1415,6 +1415,31 @@ config X86_DIRECT_GBPAGES supports them), so don't confuse the user by printing that we have them enabled. +config ARCH_HAS_MEM_ENCRYPT + def_bool y + +config AMD_MEM_ENCRYPT + bool "AMD Secure Memory Encryption (SME) support" + depends on X86_64 && CPU_SUP_AMD + ---help--- + Say yes to enable support for the encryption of system memory. + This requires an AMD processor that supports Secure Memory + Encryption (SME). + +config AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT + bool "Activate AMD Secure Memory Encryption (SME) by default" + default y + depends on AMD_MEM_ENCRYPT + ---help--- + Say yes to have system memory encrypted by default if running on + an AMD processor that supports Secure Memory Encryption (SME). + + If set to Y, then the encryption of system memory can be + deactivated with the mem_encrypt=off command line option. + + If set to N, then the encryption of system memory can be + activated with the mem_encrypt=on command line option. + # Common NUMA Features config NUMA bool "Numa Memory Allocation and Scheduler Support" diff --git a/arch/x86/include/asm/mem_encrypt.h b/arch/x86/include/asm/mem_encrypt.h new file mode 100644 index 0000000..a105796 --- /dev/null +++ b/arch/x86/include/asm/mem_encrypt.h @@ -0,0 +1,30 @@ +/* + * AMD Memory Encryption Support + * + * Copyright (C) 2016 Advanced Micro Devices, Inc. + * + * Author: Tom Lendacky + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __X86_MEM_ENCRYPT_H__ +#define __X86_MEM_ENCRYPT_H__ + +#ifndef __ASSEMBLY__ + +#ifdef CONFIG_AMD_MEM_ENCRYPT + +extern unsigned long sme_me_mask; + +#else /* !CONFIG_AMD_MEM_ENCRYPT */ + +#define sme_me_mask 0UL + +#endif /* CONFIG_AMD_MEM_ENCRYPT */ + +#endif /* __ASSEMBLY__ */ + +#endif /* __X86_MEM_ENCRYPT_H__ */ diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile index 0fbdcb6..a94a7b6 100644 --- a/arch/x86/mm/Makefile +++ b/arch/x86/mm/Makefile @@ -39,3 +39,4 @@ obj-$(CONFIG_X86_INTEL_MPX) += mpx.o obj-$(CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) += pkeys.o obj-$(CONFIG_RANDOMIZE_MEMORY) += kaslr.o +obj-$(CONFIG_AMD_MEM_ENCRYPT) += mem_encrypt.o diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c new file mode 100644 index 0000000..b99d469 --- /dev/null +++ b/arch/x86/mm/mem_encrypt.c @@ -0,0 +1,21 @@ +/* + * AMD Memory Encryption Support + * + * Copyright (C) 2016 Advanced Micro Devices, Inc. + * + * Author: Tom Lendacky + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#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 + * section is later cleared. + */ +unsigned long sme_me_mask __section(.data) = 0; +EXPORT_SYMBOL_GPL(sme_me_mask); diff --git a/include/linux/mem_encrypt.h b/include/linux/mem_encrypt.h new file mode 100644 index 0000000..59769f7 --- /dev/null +++ b/include/linux/mem_encrypt.h @@ -0,0 +1,35 @@ +/* + * AMD Memory Encryption Support + * + * Copyright (C) 2016 Advanced Micro Devices, Inc. + * + * Author: Tom Lendacky + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#ifndef __MEM_ENCRYPT_H__ +#define __MEM_ENCRYPT_H__ + +#ifndef __ASSEMBLY__ + +#ifdef CONFIG_ARCH_HAS_MEM_ENCRYPT + +#include + +#else /* !CONFIG_ARCH_HAS_MEM_ENCRYPT */ + +#define sme_me_mask 0UL + +#endif /* CONFIG_ARCH_HAS_MEM_ENCRYPT */ + +static inline bool sme_active(void) +{ + return !!sme_me_mask; +} + +#endif /* __ASSEMBLY__ */ + +#endif /* __MEM_ENCRYPT_H__ */