From patchwork Tue Jun 27 15:12:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 9812499 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 373ED603D7 for ; Tue, 27 Jun 2017 15:15:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2967F286BC for ; Tue, 27 Jun 2017 15:15:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1C5C0286CF; Tue, 27 Jun 2017 15:15:54 +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=ham 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 52A79286BC for ; Tue, 27 Jun 2017 15:15:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753416AbdF0PPt (ORCPT ); Tue, 27 Jun 2017 11:15:49 -0400 Received: from mail-dm3nam03on0080.outbound.protection.outlook.com ([104.47.41.80]:1173 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752572AbdF0PNB (ORCPT ); Tue, 27 Jun 2017 11:13:01 -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=owe/TQwj1iQuMov/DugnT79Bf3RJdwJzockYybN40UY=; b=vs5c6ZMHR5/LCWahr9JT6vr0bgbJxrrA44MSg0ahnIMIxOe9mIz0/VAZaaiglw/c01ktjbNDQoEPYXtDsy7L1zYuO0H9zlll78Ju/YCme588eus+fLqAEubI+gKpncmRQrQxfrbTxscTecfSt9kuJGl6Xyh7DnDDqZ6bQ+UXaSE= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=amd.com; 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.1199.15; Tue, 27 Jun 2017 15:12:56 +0000 From: Tom Lendacky Subject: [PATCH v8 RESEND 29/38] x86, drm, fbdev: Do not specify encrypted memory for video mappings 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 Cc: Brijesh Singh , Toshimitsu Kani , Radim =?utf-8?b?S3LEjW3DocWZ?= , Matt Fleming , Alexander Potapenko , "H. Peter Anvin" , Larry Woodman , Jonathan Corbet , Joerg Roedel , "Michael S. Tsirkin" , Ingo Molnar , Andrey Ryabinin , Dave Young , Rik van Riel , Arnd Bergmann , Konrad Rzeszutek Wilk , Borislav Petkov , Andy Lutomirski , Boris Ostrovsky , Dmitry Vyukov , Juergen Gross , Thomas Gleixner , Paolo Bonzini Date: Tue, 27 Jun 2017 10:12:53 -0500 Message-ID: <20170627151253.17428.76893.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170627150718.17428.81813.stgit@tlendack-t1.amdoffice.net> References: <20170627150718.17428.81813.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: CO2PR07CA0059.namprd07.prod.outlook.com (10.174.192.27) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1e154bdb-a22c-499c-acf1-08d4bd6eff6b 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); SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 3:O8za2XcuaoGqZMdFCPukqVsh1J5UpqWJ3JCnWcMw0u0Hng25ZhyZcNzLbGed89TYRhISLdg4KW1kkMgnlDhkZr7VHFZomAP0TFBcIxE1QhQ/fsW47sZoZXDMZNCicGi+W0vRYBAwxtUD7uZaNYR/DK++T0P6DiJ5BXQPlQSIcqm1j9tA4esd1f9yoAkTerfPPOm6bwPI2xj/0OVSFTDUvAgv5jpHY/5qAjp5lvdzVOSNwImKGKejCsYzv8/Rq9ZRI5VIgEu0EH2xKmcodezfPnmmNBm3YDz5jManyE30qqbi6MQjQhEhMao8zBftE00w5jaWFb0wb6meit7p+TYZfbIhr4c8BR6eIPxIABUnk85LzhWQtYvzjK3tnEmej4hkXdO4tY75F11ubs1lVAeiaHbsgLhk0YE9X1zPtbWyZzkjLhpdRq7bf/a3FjstR6wAeeWaKfGyNiqXmy/E4nzeTrrnIVz1aFWG/YjlufLlsWFVc7W2/mR2OU1yM/Ly4/WXxwpjW3uLFBo3SHlFgsKs9g8MrYDc3UX0QPm4zjzfU2nIDlNTyDiYscoEK6spZgRpu3rysMyb47XuKrAnnbzwojTFMcbri+khPpkRdjde1i/8FCiC2yHO8OefLk3WKCmiGIoL7rMRHQ90SZAEt9KD1g905toOS5FN6RqkBxIssctzrRf9Ptgp76gsjfU65XDHrjwlURhaUqqYwrjbr79tug== X-MS-TrafficTypeDiagnostic: CY4PR12MB1141: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 25:yNdEOohM6BnpTdb9rR75RAsm94Tegqx1TVlDc8NoT/5CLcEWXDNfYqs3MX++jatkcDYApoGWHDOvMjPDBENxdlxYLKpUpakexwJZFhsvPzS7Jzlw1PM5IA607w5VrpFHsjPaNKO+Nkddkp9szlJgzW12wA9gG4DtYccvXM2+85Oce4iMjAhHF07nNcMPaTFuaR/2i3TXxLM6wBVqrvuLOwb2qlX4jLy1pTivVsRS6B6+ZRVkP2H6d1DfK+iay5XaQxLjmclK9UHqWJ8WEltiniaGqcMTCYvO1ZQnSi3Qc6ATM0IaB1NoBHAd2TCuMcjbhbjxTnwyGC+omNtFNkxmsFhT5/i02bg0NZQtILjdjkk3CxinYAzWVxcITJg0v0OwHKATq8VF14yOF99C73rZCBdSMWT+Z7zkN5bWZYO/E+AxwwXrShJ3FzabnjmNg//piM9W1wnWFAidYcp4qHe7s2IrsUzX6YvshF3KeQQr1ffThA6TKCEL5jzNDQHCOnoF9WDw2M/UINAEOGUQMb0v82TBu4hmet+jxELp21DdkCo2eVreTDy0m7KUwJqiw+4mrMBFWrXHDU0UYkcqHRxCJeNUiGzYEmzBgnWfehiqqVc+dL6xSJsqVk2234hpMY8y9DfhqKKOYW7Rz7HvKIMI5+fNZAeRIDoVPAdSpd9QW8kYYqBy3ypjotkyOlAj2I+vYJOaoLpeXKv/Ljp0LAJqQ2LkrM4Cbn0T2O8eW1+DRBTG+ZtFeIGTUII9xeuxoWHmkNc6pFgXR9c3DoabfSqnGX5ow5fVFCUaNDmNDJ6Jrd+SovidytA91ZkLlhjcPg3an1n7aXQ5MgvhujP08s2pmAPWYkwgMkcmWk24IrPzvEIvREWnY1Duw6Yv4zs2YQjMCWy6Wl2bRixQ2ykF3QmV+VPZlj+jZl1i8mmb0fnbE LM= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 31:4b5VW57IsWgIIqvq+iD1rYeqZBR58lM14N7AutL4p47a6u79ShcrWimm3xdgP6wX+JYKUKvrpPRAoW/tLnxysEhuwdohGhj61g3Djlmh5fUm00xGBvzNBDrCSNPwOzAMBZ4BKBz4/wpnw5QGcPeBnUAypW17rCgBy5Qu/UH/cSRQrPFKFyUvLAG1uzGKUH0sL3Chn/gVQa5Jm/GFqKfzgzE8MWhw2GBe4UeQEwPjfobFJTkUxLDQ0Ljk2H6ueBf1N3t20FYdDdSCC18aDh4JvQG8PHkkeImcc4p7DhmZiLkmgHG+NBTsbyAS2GOt8yxEiK6Hh7uCuxtRXzYV0HYuvd2TodyWl9PefwsvL2e4dWVthu9TR/xNwqbmkKKnB187s3AGZSV1taKTmLIe8VIuNS1kq1CRLut+ZnWZcXftWcq4Z7aFNN1fDwCCFj+YEkyyrMiYvsYT2n3y4N64vvlcvCqO3EGCEFzDorY1ydlraNvlq7ZMARAgWXYBgJA7LOgPjNQcWxaVRbTibXzKDDVKIbwDmYhJCLU3NSzSMg6VCQjjS5A7QrnoweStT1pgBH3ggZtuuwjlNvqQWFBWNXNc1QuKaLKRThqSkCl2mrwqrlVj+qDv00ivu2de9avtYyGNcE7EvLr60cf2b2DTdAKHLH3ZIihliz+2Zq+QiZQ2R8c= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 20:oYWItO2B0ZkbQIppJt1Tid8dW7why4nj26o8zAZQxhBWcSC9RTE6mg2w3aYJw4q9MU/JPT2IBWF7j7jnuia6+Wbsb5yBxaD2rBVrqLtLYiIFTjLzTQDg2rWHg2GrlHNffo9hGU6wjZwbt4JBx0WmTbDNxXuRIfA7r3BUVI0lc9Vm6WGq1Cz/cHR/v5RBGVdr34kGBOxRDKK91ommcXoRMck6attQ79KNTO70TSHxX6jJFMQHmqOvWejMWq6BVszxPjOh28obWhMXREdK4Wo36nfU3Ars71uwnCiF8AOM5v3nfEuU0/HHxW8zRUteQV6BJD2LyArgPyB0GTLDe2R14shZRceob+hh5Uq+Er4GB6oOAaOq0iqFs9fDzIS9aX7ig+ByU6JS40BfwIBz/M32Lm23Mi3QKs+CPjWYIDfwsieleGyRgsKXCBWV3Z4L5zCWjM1euIEOBDFWMbjBYTYAif9lSZ+qpSce7KKkhFFIlOVvI67+1B5TVzV/BzoY/Gj3 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(6055026)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(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?MTtDWTRQUjEyTUIxMTQxOzQ6ZWVkUjhMcnozMzFNVm5ZYUUzbDdhNjNqZ1li?= =?utf-8?B?NTExYkZPUXJvRnpQbklYWVphanRiNjJma2x3SXl4YTlaMlJOeXRvcHArWjJr?= =?utf-8?B?TjBQV0NCRTYxNnV4QjNldGFGSzNQRk5uNGtnd2o2ZFBuTHdRZVJ2U21NUW5D?= =?utf-8?B?Q1ozNWRsQ1JTRHB2M2JFTnFPUUoxNVY5M2c2UStlVVE0a250WE85YW5IdGJz?= =?utf-8?B?Q0dneXdXM3BQdG50QW1uQXk1d1pvdFVhM2t6UzFrZTlUZCtKRmJVTndvdUJJ?= =?utf-8?B?WERDdFI5MkVYK2JDbnZXMjNtam9ad0ZnZFFlR3dDd3ZtWHBXS0hXNEpwaVRO?= =?utf-8?B?M3d6em5CZWVDbjBvWDFSSU5xZnZMbXZrMy9xSXZPMzh4VGwzbE1tRGtNeE1v?= =?utf-8?B?Sm1TS3ZzMllIRkUvWjhEaVIwLzVucWYwSDg2MnFGTS80NDZqVFpkTnVWZUUz?= =?utf-8?B?NERhSHNwQk85VkMxYjNPQ2swYnA1VzVQelpuOGh0WjhzbG90ZERxcDZ1NGFD?= =?utf-8?B?UWJtT3oxOHcxM04xeUlyamtZUVB2enVxVmlOVUhQclpsV0FsYUFOTUZ5YzBh?= =?utf-8?B?TnRyU243NXVOTXJxd3lvNW93anhwM0liM2J2dDMxTDJYem5hbWo2UU1jZUc5?= =?utf-8?B?UDh1NGRwOVF1ekx3RTF2eW9scllWaWk2bjhselhkTXRjQk9IWDdrRWdsMVQ3?= =?utf-8?B?VDhjN3pveXpmZGJ5aFZlY3B6d0N0N3p4U3FyYStUeEZrTEgvVXUrZlZNWmox?= =?utf-8?B?b3AxNWRnRXZmNGRWeDBqMFo0dzlSdlVFNmVlM0k5dGh1eGJWcGd6Q0pNUkhx?= =?utf-8?B?NXcrU1VPSFJHQ000ais4YTV0Um5XcG01ckdNWlFxTWFVMzJFZEEwY1lSSGNl?= =?utf-8?B?VzhleVhRdjZaODBLODZaUmIrQnJsekJiL1JpZE9mTjVrWVBONzVGaDJlQ0xj?= =?utf-8?B?TVE5czUwSmxmSGZ6UHhnWmFNWWtmMGZxcjZMMmUxL01yTHVYYk1XWEx4Y1Mr?= =?utf-8?B?YjVQYWtBaUlWUlE1MmNkYzhwUDNKZ0E1eGlreFpYQ3lZWnQ0cXc0VVdkeSt5?= =?utf-8?B?U1FJdkhJN0RzcmE3SGI1NWxHTGJORTU3Yk0xQ3IvMUlZakF5ZURBQnBaVzI5?= =?utf-8?B?WUxPWTVJT2RCMGdUTHo1cGVIK21Zcm9RejRtc2Vwc0o3cDFteEl0bm9EZ1or?= =?utf-8?B?V1NWaUpTOW0yb2R1OEMybG9wNEpJSld4Uyt6ejRYYW56a29KMFhpQ2hLT3BK?= =?utf-8?B?OC92VzZXVkdHdkxheWttSDRSYVFEK3VGU3hnSDVMTlRxV2pvdGd5TEkzOG1h?= =?utf-8?B?MXVhaUVOcEtMZUZEWFVuV3VPcFg4NjJwNDAyWUw4RkZZelNmWUNlQ0FhSUhB?= =?utf-8?B?SHlHYnRoL1M2djIxT09HMktIQ2JmcVh0NDJqSm5Ed2E4NHNCZGdiem1CUzRl?= =?utf-8?B?OUc1U0FKdVpHUkdZa1BjSjBRT2F5aHF0NWNhU1FuVDREYTNXUEo5L0JONERC?= =?utf-8?B?R0hOR0NZSWppVy9CSjdwb1U2MGNlMFdwZVVJbVFsWXliQlB2cUlWQlpmQnds?= =?utf-8?B?VG5mOHVacTd6SUVtY1pOZnFvSk13Vlo3Z2k0aG9zRURQS20xS0NEN0o5d0sr?= =?utf-8?B?aEc5NzJrVWNpeG9aZWtsdzBnRmdGdnhPS0xYRkE3M01PdlB5ek9DYkNZMjlq?= =?utf-8?Q?xcdx4YD/t3SwS3tk0neKQYFw5l9lrZHP3gE8C7?= X-Forefront-PRVS: 0351D213B3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39840400002)(39400400002)(39450400003)(39410400002)(39850400002)(39860400002)(103116003)(53416004)(97746001)(47776003)(42186005)(66066001)(50466002)(72206003)(81166006)(33646002)(7736002)(86362001)(7416002)(7406005)(6506006)(5660300001)(305945005)(23676002)(8676002)(53936002)(9686003)(55016002)(2950100002)(6116002)(54906002)(6666003)(110136004)(38730400002)(76176999)(2906002)(54356999)(83506001)(3846002)(50986999)(4326008)(1076002)(25786009)(189998001)(230700001)(4001350100001)(478600001)(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?MTtDWTRQUjEyTUIxMTQxOzIzOnMwaXlQanRGaXgyUzYyRXNRbjZscjQ4Zy9W?= =?utf-8?B?ZE1nRnBJNnR4elpIK01mMExGK3RsRnppYzJaZnY5NHVpMTI0c3ZnVlJyck1C?= =?utf-8?B?TmtDazJoYUMxSnczbk95cmdYZ3pmcURCbzJQQWpkTU5Wdy9MeVp4YXN5M1RS?= =?utf-8?B?K0ZCNDU5eTlCRGFZc2hNWXBYZzQ4TmZ3Ni9IVk9qT2F3SGxSL0QxUk0xeC84?= =?utf-8?B?NUtpYi94aGh5OFBLZ3ZVakNpQWtVQWF1MzB5RXdVK1JkTWtXM0lQWTAvL1h2?= =?utf-8?B?RXk4N3N6WXpjVW96bGRsbHVvZWtndWZTQ2FuTlV1dWhjOThVbXhaTldZQVcv?= =?utf-8?B?Q2g4SnJvOUpNZFg1ZmV2aElTMGtWaHVla2g0cGtlaTlGVlh6TU9SbjUxYmZ0?= =?utf-8?B?SFQ1c1R0OUpzNXdkbTkrMnRFZnJxNnhjYVg2cEp5anBCVnRhUkgzRC9ydTJE?= =?utf-8?B?YVBtd3VjRDB0QkFQQUlteDFKTGs0NVprTVdMaXRUMGhHUDM5b0pmQ3gwUFBC?= =?utf-8?B?WVF5czBrTEl4Uy9veUE2QzZNS3RMLzVWSzYrYnkwN0VuSzg0TWloNWhXUGFq?= =?utf-8?B?dzd4aGNGck16ejJCVnRMSVNNWGFWN2F4WkVsN0NXNHhzUTROQWJSUUF4KytJ?= =?utf-8?B?Z1pNODh1alVidWxPUU4zSUY2b3h5ODI0bU5UaXgzZXdhUTM1NDVIc0pubHR2?= =?utf-8?B?cUgrcy8zWFFOZkxINmVwcWpKbnUrSUQ1bFNZQ205UWE1aVVVYkpWeEhyNE5r?= =?utf-8?B?STZhV2crVk5hWGFjQUhucDZ0VHFTVXJKbmlrOE1sTlp4OUdRN0o4UFNDU25x?= =?utf-8?B?R0ZGeWNTN29vdjBLRXROTXhqbWJ5MTlxZ3U2RWdIS0RnSk9sMjdvUVUxWmli?= =?utf-8?B?eDlLMFRhYWE0cTlyaW8rd1JldFNLMTRMOVdvZC9RdHE4OEtUSGgrMWlFaXVF?= =?utf-8?B?QjF3OXVTQnIyTVlTaVJtZDlaeU5RN09jWjhZb0xsbTNjSlc2Q0c1ekZsNnRm?= =?utf-8?B?ODlpSnVjVUlEbXFVSlZlSGRBazdkSjUybFRha3FqQlpnM1BRY2JraXNCUWdk?= =?utf-8?B?L2c3RmUvTEJlSkVZNkdtdDRvdW5VcHJnd3RySFpJYTNkRy9nVzQ5c1FGazUr?= =?utf-8?B?VHdtcmZsbFNpaXJnenpBRFNBMlI4eC9KcGpOcklLdi9jN00wdjNVRER2OWZX?= =?utf-8?B?YlRQNEttNGZPRnBBUloxK1lDUUZ4aTM1RFVocHlQOFlRVE05MDFOa1dZaTNv?= =?utf-8?B?UmVhZTJWM0hKZ2MyVXlOL0hiMndFaENGWTBRaGFONFpvT2ZKL2pJZ01vdWc0?= =?utf-8?B?MmlneERJZS9nL1lBaXAwZ29BSzJKSHgrMTRXNmx0VFE2Rm5DQVJVUU9SMUk3?= =?utf-8?B?VE1qOVFsNVdmU1RKVlN3MEp1cFJQZkFwKzM0TlgrNSt2ajRnMFpmdHVTME5W?= =?utf-8?B?b1FvNVNsUTJwa01ZckFieHNBRUJEc2t3RERvZHdBOUsrbTF2UDNqc2E3SXUx?= =?utf-8?B?OWM0S2hwb1FqdWgyekJndVg3YmR1WndxNGx6ZklMNmprR3lSMmZrN2lkN0I5?= =?utf-8?B?R2g2Yk5hV2NwTnlxejJuSlJBWVpGOWdhRVhHRjZKN0Vzenlna040dmNWWmRn?= =?utf-8?B?a0t5SDRmTElJSWgvS0JvMDc0ck9yV3VKWWZNQkFxODNQQjB3R29uVndtUWNm?= =?utf-8?Q?9epsb4mS5qfdvhaMac=3D?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzY6R2RsM29KbnJ6WXVrVGhwNzlrZVB0WU1TcTlU?= =?utf-8?B?QVdTWWpnWDBCbVRvam9qaGRSMVJtYTd0dGRkb0ptT0Y2d3RwdDVsb0NSMElP?= =?utf-8?B?LytBUmlEcWlEeE5iUG1nMDlYOE9qcDhOT05wNzlCVmw3ekRaZm9VZkhoQzRQ?= =?utf-8?B?b21rcVEwMXd2VzYwclIxeXJMTlU3UkVUNHhaZkZrdlRMdTViMG9jb3F3QVZS?= =?utf-8?B?ZkRHOHE2YUd4MFYxcXpBOW03RzZZNlNqZWR4MHFXZlVFWjFYdGRwdkV3YkNv?= =?utf-8?B?SjVpeTBVVHBKczl1R01pc1p2QVBjQWFtOGdpc1BTREJaejRvUVplOUkrQXpZ?= =?utf-8?B?aWU2dVo1aC94QUV5MXhwYS9ZL01OQXJzNTI4MnZFQkZQWGpiQkw4MW1XZjh0?= =?utf-8?B?TkQ0aWFzeHJvOTYyMG51NVpaRkEwWWRaeVdjWXlUM2tUZnBLNERzZHYxT0ZY?= =?utf-8?B?KzVtRllvVTAyZTJ1Z1pZdVpSdm9GSFpxS25vMnpnZ2xmMW1FUFhUVEYwYm5z?= =?utf-8?B?RTZ3ZEY2Qkd2KzEyZmpRMHM0ZWk1eHBrRWp0dVczbDQ5WWFkSytKenY3V0E0?= =?utf-8?B?SXRxQUxhNzF0UDlPeUlzVi92OEw3dXUwQ2FrN3lmenY3bjNjVWp1cjM2RCta?= =?utf-8?B?cjhjY3lxS0VnaWFvK2lmZTRtVjNoMmtBdFl2bjJJbWRyT0ErVWtjMmlZZ1p6?= =?utf-8?B?emozU3B3R29HK1ZqalNvZGs2MHlFNTZwZ1VhZGh0dDcwK0U3djlRVjViYTF3?= =?utf-8?B?b3oxMTV2c1FibEZINHpPVzJvcDdrakJjMmZFOWwvbis4YkZtNE1zK3BFejV4?= =?utf-8?B?OVlMU0ZGeXRVRGYvZytPcGJQVkU5c1NGdEdlbkhFTVYyZlI0TDBXb2U3SHJS?= =?utf-8?B?dGM0UVFNUkVXN1htSnQySU9HWitRaUE2N3ZoM2t5elRQWGlJWWt0ZWZhN05n?= =?utf-8?B?YXQzUlZSR01WNzNWZDBzcWFlWnBVZ3NRaXlFNlN6b1o5dTZxcC9rbVdRT3F6?= =?utf-8?B?OC9RRi9CMGRpM1dZelVGVmIwczRIWWNxZkZtVnFTTC9BMDRYRXV6OGFGNmUr?= =?utf-8?B?U3lBcWE2em5FK3FCYldoZUZsc04veERKS28reU9KZmdpOU5ZZEdkcUpaalZj?= =?utf-8?B?WnlEemwva01SNktFUmlBSUhBbmN0aXdtYWxzVmdZMWswTUV0Y1o5ZTFGSGIz?= =?utf-8?B?YlVjS3hnVG41NmJud0Zjc29NL3FwV1g0cUdjbWo3RytqWStYeHp5TkhoMjl4?= =?utf-8?B?dWRNNXJJWDQzUlZTc0g4aUtWNkdOOFd6dmJMNnFadkdTNHV6ZkhPL2tXT2xY?= =?utf-8?B?VGtjYUI5V21QcGVzbDExUkF3dlVzM1hPRDhHNjNPdTR3S3dhNFR5QU81WVU5?= =?utf-8?Q?dCBlJjl?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 5:wspqCr3V5+MDmjwCLKVmTPc671A3TBA4lMcf/vA6EcDuXNU2ZjHOiYziT9vQA76CSZSq4nhB/H60NwajHLhh06yEfQZgcefJJ55k3bx0F+x065Jq456iAgtLCfIsydAg9NN3Twpap5T/kADUNktkQ2gcEhC7/yUWB5hhz6FIk8gH24VRmy6WS/REifRJ52TID00Hb3OycHU2LBXQCIvUtJrN+PeoKTXX0mkCU4TKciJkHmGMwkJP8XrXEH2lItkFCp1rMyp9K/APyM3E2eINPsBM6ia8L9Qz91e5pAI35emdDrpdZgHMFKt8RsBi8zqegq1cCB3WhCUIcjtZntSRj6UAUtPbG0M0NcuZUzeiD9u4VNSwUK3o2wO1jb+Wy8T2+JCFn6KwmgVQxqUwvs+a3J2ySGBuPEjINTQuo1eP/PnyqKBN0tiSpUvQpvsOK02uPSeQAhol4DNPxUapbXOab8Wj5g+GFjXoEvknm/+SEMczCRr8gB0ZKFK3aE2nuX/n; 24:jDcVfG0HfZE3mrHc5z2z/t9i8gbrkilsS5V0vbDXQVGvoRqwPdQxBiTW04/nr5XCjlY96kQEFk1oWHxb964fqsFFjU2YgE7pn7tByRm2mR8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 7:lIsFGh/B/sS3oqzKFKfEpt77jWb5pIEbmCW7XmEYq/GefahV1LiCocgVmSBd0t2yEhi4/ZIXUcBYo7fPmPT4glzfGH+PorBbIBfQWoRg3CYnuartAG5te04O1bmHVoG4orjHs/X6Wl1PNzHIfqQgVIaL+ZUyQRUmumRyZcKw2MKlaTkoeHQhG3tybbSI/XwWyTNxBHf34DquBF0HA2qnFIgLySyIUB8rcUbU3BEDjxJBYrbkhgqL3z1VSHqcT4UiNZqhW5MHuBVwE4E97tvmniSLHPuMZlYbcX7FUZ3BirV4RBNfEHdvs3xtoP+xCnayHQ8t6djzXxQXUcVpL1hOK0/crvrcSTH66Dr4kFurdOG9naPLsMT+VKcMqyby+xemfionJAzWHdiFbHHXrwRAlSCTKEs9Q8F4pdbfJH5e7e3ofoJ8QUznvWqIICeXdzomkWWscgoEEmSBRG+h6OqYV7BVh5VTJ+6LwdbUkXiyHgjkRRj0KxUKYpU+sYkkFn9z7SOGWblu5IwJf2CYHk9+hyzwM8CRBhctnZ1DHW+mz8lfFVrQtKzuCoIr06Dr+80sHSv8KzsF3X/Eb0A4r5IzdPnO0ptiCDD5inJYxeTrja2X7LP1iQ4GL4CwtNnLIPCCS7ouAtoj0SVvsNQir/pRKWcWO/hKmsFPnaW2gZkPQ9RZrIS2HRabovc9JrEU9hUq9eQ9KGdOypEggrfpNu9fE/P5WWKTg9oaOnRyP5Ul667JhtnOgkVUSlQjqJrTMJKuFIiqy4twJTsiKDxm8HCQVOwcs14lGqwPhmxnt4+LQJU= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 20:ObrB44HzThkvyS3L/CxCbESUKLHEaljmKZRW1a9vXdPaBxltP88b029AZTOUdlvXbMTI7vepc9qRx2K3ii7fFK6JxLiKxw4naYrkeXwMGQhwwe3ZmtdanD3xoBDR2bDd3JXeiFXloEs8LFBkkREHg6exgZs3i+5ZMBB3NLtDVUdGfJMSaD1vux6fjgPqS+oot+K4MmaCtA8oLbEzTAtBkR0OK7N6TyeXchMS9vn0mK0XWzq1ugfWh5KPG12OWch2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2017 15:12:56.7568 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1141 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Since video memory needs to be accessed decrypted, be sure that the memory encryption mask is not set for the video ranges. Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- arch/x86/include/asm/vga.h | 14 +++++++++++++- arch/x86/mm/pageattr.c | 2 ++ drivers/gpu/drm/drm_gem.c | 2 ++ drivers/gpu/drm/drm_vm.c | 4 ++++ drivers/gpu/drm/ttm/ttm_bo_vm.c | 7 +++++-- drivers/gpu/drm/udl/udl_fb.c | 4 ++++ drivers/video/fbdev/core/fbmem.c | 12 ++++++++++++ 7 files changed, 42 insertions(+), 3 deletions(-) diff --git a/arch/x86/include/asm/vga.h b/arch/x86/include/asm/vga.h index c4b9dc2..9f42bee 100644 --- a/arch/x86/include/asm/vga.h +++ b/arch/x86/include/asm/vga.h @@ -7,12 +7,24 @@ #ifndef _ASM_X86_VGA_H #define _ASM_X86_VGA_H +#include + /* * On the PC, we can just recalculate addresses and then * access the videoram directly without any black magic. + * To support memory encryption however, we need to access + * the videoram as decrypted memory. */ -#define VGA_MAP_MEM(x, s) (unsigned long)phys_to_virt(x) +#define VGA_MAP_MEM(x, s) \ +({ \ + unsigned long start = (unsigned long)phys_to_virt(x); \ + \ + if (IS_ENABLED(CONFIG_AMD_MEM_ENCRYPT)) \ + set_memory_decrypted(start, (s) >> PAGE_SHIFT); \ + \ + start; \ +}) #define vga_readb(x) (*(x)) #define vga_writeb(x, y) (*(y) = (x)) diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index d9e09fb..13fc5db 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c @@ -1825,11 +1825,13 @@ int set_memory_encrypted(unsigned long addr, int numpages) { return __set_memory_enc_dec(addr, numpages, true); } +EXPORT_SYMBOL_GPL(set_memory_encrypted); int set_memory_decrypted(unsigned long addr, int numpages) { return __set_memory_enc_dec(addr, numpages, false); } +EXPORT_SYMBOL_GPL(set_memory_decrypted); int set_pages_uc(struct page *page, int numpages) { diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index b1e28c9..019f48c 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -928,6 +929,7 @@ int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, vma->vm_ops = dev->driver->gem_vm_ops; vma->vm_private_data = obj; vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags)); + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); /* Take a ref for this mapping of the object, so that the fault * handler can dereference the mmap offset's pointer to the object. diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c index 1170b32..ed4bcbf 100644 --- a/drivers/gpu/drm/drm_vm.c +++ b/drivers/gpu/drm/drm_vm.c @@ -40,6 +40,7 @@ #include #include #endif +#include #include #include "drm_internal.h" #include "drm_legacy.h" @@ -58,6 +59,9 @@ static pgprot_t drm_io_prot(struct drm_local_map *map, { pgprot_t tmp = vm_get_page_prot(vma->vm_flags); + /* We don't want graphics memory to be mapped encrypted */ + tmp = pgprot_decrypted(tmp); + #if defined(__i386__) || defined(__x86_64__) || defined(__powerpc__) if (map->type == _DRM_REGISTERS && !(map->flags & _DRM_WRITE_COMBINING)) tmp = pgprot_noncached(tmp); diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c index 9f53df9..622dab6 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c @@ -39,6 +39,7 @@ #include #include #include +#include #define TTM_BO_VM_NUM_PREFAULT 16 @@ -230,9 +231,11 @@ static int ttm_bo_vm_fault(struct vm_fault *vmf) * first page. */ for (i = 0; i < TTM_BO_VM_NUM_PREFAULT; ++i) { - if (bo->mem.bus.is_iomem) + if (bo->mem.bus.is_iomem) { + /* Iomem should not be marked encrypted */ + cvma.vm_page_prot = pgprot_decrypted(cvma.vm_page_prot); pfn = bdev->driver->io_mem_pfn(bo, page_offset); - else { + } else { page = ttm->pages[page_offset]; if (unlikely(!page && i == 0)) { retval = VM_FAULT_OOM; diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c index 4a65003..92e1690 100644 --- a/drivers/gpu/drm/udl/udl_fb.c +++ b/drivers/gpu/drm/udl/udl_fb.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -169,6 +170,9 @@ static int udl_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) pr_notice("mmap() framebuffer addr:%lu size:%lu\n", pos, size); + /* We don't want the framebuffer to be mapped encrypted */ + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); + while (size > 0) { page = vmalloc_to_pfn((void *)pos); if (remap_pfn_range(vma, start, page, PAGE_SIZE, PAGE_SHARED)) diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c index 069fe79..b5e7c33 100644 --- a/drivers/video/fbdev/core/fbmem.c +++ b/drivers/video/fbdev/core/fbmem.c @@ -32,6 +32,7 @@ #include #include #include +#include #include @@ -1405,6 +1406,12 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, mutex_lock(&info->mm_lock); if (fb->fb_mmap) { int res; + + /* + * The framebuffer needs to be accessed decrypted, be sure + * SME protection is removed ahead of the call + */ + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); res = fb->fb_mmap(info, vma); mutex_unlock(&info->mm_lock); return res; @@ -1430,6 +1437,11 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, mutex_unlock(&info->mm_lock); vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); + /* + * The framebuffer needs to be accessed decrypted, be sure + * SME protection is removed + */ + vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); fb_pgprotect(file, vma, start); return vm_iomap_memory(vma, start, len);