From patchwork Fri Jul 7 13:42:36 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 9830397 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 97D1960352 for ; Fri, 7 Jul 2017 13:44:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8B87B2833E for ; Fri, 7 Jul 2017 13:44:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7F2F32853B; Fri, 7 Jul 2017 13:44:55 +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 491EC26E3E for ; Fri, 7 Jul 2017 13:44:54 +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 1dTTX2-00058n-Il; Fri, 07 Jul 2017 13:42:52 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dTTX1-00057W-94 for xen-devel@lists.xen.org; Fri, 07 Jul 2017 13:42:51 +0000 Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id 94/A9-03557-ADF8F595; Fri, 07 Jul 2017 13:42:50 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmphk+JIrShJLcpLzFFi42LJ0Ndy073ZHx9 psPwan8WSj4tZHBg9ju7+zRTAGMWamZeUX5HAmrHxwj/2gmMJFbMeZTYwngnsYuTiYBFoYZY4 MquZHcRhFJjMKLH2+iRmEEdIoJVJoqdrMVMXIycHm4COxLW3X8BsYQFXiXNN95hBbBGBBUwSj 6YJgDQwC7xlk9h37gwbSIJJQEZiwaKlYEUsAqoSK+bPB4pzcPAKeEjMvJgAEuYEMves+cQOYg sJuEv8PL4IrFVUQE5i5eUWVhCbV0BQ4uTMJywgrcwCmhLrd+mDhJkF5CW2v50DNl1CQEFi+/f vbCAnSAi0M0qsO7aTDWKmisSszxfYIYpkJY6encMCYftKHPvQwQoyU0JAWeJUix9E70EmiaZ1 36Hqz7JJ/H2TBWFrSSxa/hNqwSN2iT3zj7NCOawSexc0sEM421gkvryCWZcjsXHiSyYY++rHE ywQRbdZJVa0rYUqei4o8XtN9ARG3VlIXp2F8OosJK8uYGRexahenFpUllqka6mXVJSZnlGSm5 iZo2toYKaXm1pcnJiempOYVKyXnJ+7iRGYJBiAYAfj3U0BhxglOZiURHnf+MRHCvEl5adUZiQ WZ8QXleakFh9iVOfgEFh0tClYiiUvPy9VSYJXsw+oTLAoNT21Ii0zB5jEYColOHiURHjdO4DS vMUFibnFmekQqVOMilLivFUgfQIgiYzSPLg2WOK8xCgrJczLCHSTEE9BalFuZgmq/CtGcQ5GJ WHeFSBTeDLzSuCmvwJazAS0WLExBmRxSSJCSqqBcfn6W09ZS8RLr4VO1DUKYaydOXvrqX9V/9 s2/0o7Z+4YEHFrcqaFj0JV+AqOOu8PgUdmW6ieYZBvXOIlq3/GLDtviZOh9QXG2i/socfsut9 tfha/x2G/zm8F62Mu0oLRV987nZQo4fjRYOu6fItySr739LczJzCE8wQ9+v9JcaFqRVIOt9g3 JZbijERDLeai4kQAYka3IpcDAAA= X-Env-Sender: Thomas.Lendacky@amd.com X-Msg-Ref: server-12.tower-21.messagelabs.com!1499434967!72177119!1 X-Originating-IP: [104.47.42.70] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.4.25; banners=-,-,- X-VirusChecked: Checked Received: (qmail 35167 invoked from network); 7 Jul 2017 13:42:48 -0000 Received: from mail-by2nam03on0070.outbound.protection.outlook.com (HELO NAM03-BY2-obe.outbound.protection.outlook.com) (104.47.42.70) by server-12.tower-21.messagelabs.com with AES256-SHA256 encrypted SMTP; 7 Jul 2017 13:42:48 -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=UvmsxGsmigxJvVqDA+y3G3zFQc5sTTorU0kKlJ5j+Z8=; b=pP9toBakSxyVl26rOJYMqgHBlg9dlDfuv8tsMw6N27dPBX3ucPREPF7n+SpBPDsHGBf3+uiNGJSbYV/w21WJX2Mfe49NiyP1CWxuk9WdO1jC198n4d6JKZS+FGGbGybb+Hh5RSVNxUTA4+gVgy/F2kl7eJzvtxfRvdfqSH57bDY= 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.1220.11; Fri, 7 Jul 2017 13:42:40 +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, 07 Jul 2017 08:42:36 -0500 Message-ID: <20170707134236.29711.39443.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170707133804.29711.1616.stgit@tlendack-t1.amdoffice.net> References: <20170707133804.29711.1616.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: CO1PR15CA0052.namprd15.prod.outlook.com (10.175.176.20) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: be9e9622-ed50-4074-cbe8-08d4c53e0bbb 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:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 3:Tj9ZgmqkSwbsnV2uStB33Z6EktUeTS3tsTiXwa40gt8rch21M6YlErJaMxYGtPe3utC9xIavx8ecfCLSvzZSrUzk0VJ7lOQw1U5bKVt7UgPHkvxzng3dvRL4A8iDnXr7Wx7txZK3lhQBGGZOE2GM2A/zJmDSR6iucrjaR2Wmaq3YaGFu9A9os/LGE2nM6clxhC4TnP5tVB4/2kXfSFhyVjBDUav9gkTs+V0tB0WnUR4N9qeWdhz2jtzS6LOhItB8et4dqNMYKIdrUkVxggTAEXM4XwmqRtqNceNeghvcoxNEfodqft15R3bmkl1M66ZKlAydYcklYsQ5D2c6bifQ3ZW+VMlbjUtu8mVvC0v/uJIhmgh5xhLOP3uGps25ShUgn4FM19pvib2VPf/6fYQU/JgJzip/RK5afYNfHGFigYORBVfnHAH2VyZ4qt5NbCcF/0hZgfEpguRF5FeKcJhEDqTbi69cpsh5p31joZRMoIaj2WUIMl5NPctOwxqKtmgvzf3p9qRww+4ACzyzU8ESNdYMsN7M088BDNqdgxaqI6myQ+KMew+8YilQQu5xfhlEHl0YjYvCzFXcqkunH0TUZSkrMX6HuQkPuk7DKOWTABEmu4LQRQuwesk+CCsqQQU9YfHXdPCwL5unjR9KLk5rmB5uMj9UFWCvX6bVLjFRDG3bttBTy1jFb8VUFpDRnI1UxKP2o5qh/LBL16VmoZXOlpAXnzAfI2/cyQJT+VH3fruQhsE9Dyx34Pm/JNxBkqtRqtpu1rR8pzjOyEiQ6WOX8w== X-MS-TrafficTypeDiagnostic: CY4PR12MB1141: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 25:1Z2BmiVFedwSWgCHfjAHGI/R61hMehaImesQjNpctRVyorJOMks+e2KuUMgNvhi1OG3xOEK9MEfGAkETqdga5oNDKRaS2DG38baShMG1ma0VwBKBhiWo3ObOfZU9+ltb8lbI1Rr7ph3KNokIm9Nhw5BY65kCPK+841ZfrkGeBCpfOm0ehhguTYCPziOg7j/BGkLdkqSY0ZFwTdeJsq89dUNtOKB7bhG77feVzdOHIUsNcFnUnQSCMgTdwlId4aCzNADjdwUgblWk0HTdiBA/1oGAlMgXK7ZEkUimpSTgLWT0SHcQoBjV8Utq8Ughw3ZQoifHxyoCy55QcaZHZ8wsuPY6/BR74h/VXtgr8Nr5o9qzcLWxZ+nQm2nNphwG4Op1+SjkBaK4ztU6J2qAP3ESiGQvS6Ywubtw0UTKJBB/1iUuCkqJMZcUZoSU1cDNaT9oLmJt76y5USBnRjasra2CCbWkDmIvbjAMKJVuuYNpt9SLXAzCwFe/xTkl1WLbIIE/RJF6A+DCMNuEjMh2jp0ALwYi7Jx8XTHMvaXNhugbnglZBkOd/e6HZlxzJCn7YeUhCbCYc6bf5FznX/NYQp8iUP3VSvPza5iQ0UnbKqPM8td1niyHIkGtkbE7SpL1vaLV3UnwYnAPPwem5d4fyVwpWT9RWejVDT+k6QZcM2ToMf7dul3w46Dnb2nEEIoy+xMY6H8EoH0wJG02ZIzyiw0+zOySy2OIw+quxwGT6FQZ8IFx3cWxA3EpcIYCPeUSl2oeercsCZ474sWhMImGCO5XIc3ok7fKuk8p9M1IfBZ8/iITbtBpTIgE9+cLnqHA97HmrWvKzXk1CnZmNg5fMB6AASdAt9o55mWQiGAFQlN6qjomptkmdeNy0QJdRjxP5Om/t1EL/stG8H9X6ZadOdpOKrxsE5cNMutlZqwLRuBG/5I= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 31:u3NG5eMEk88+bqEEYZKXUAnz/5Ov6DqEhYHHujeRm+1z0y6IZdrBf4WDSiouMdVPTmM850RndSk3VendCsNzGLgZPd0LE2ot50y8id7vXBoNaj+HmTjqnnWueqzoV/FEDUAERrXWTfMmZNz0WKDTfIBNK4y4iE2EinwW9nK+CDlxTpoWB46uZid/GCbqdFBns0f+SXgu0BUTMoYnV/BCdS/YNvjuOCoxmRKqY4N1SPhQIiDHaxr6zMLB8wWyvoVtLgJ793I7x2iI0SGPqHmTkUWMHMT0FVOgD48c2Ev0gLcjuJURz07700NPlM4V6yGOxXZiG2INl0wu7UKOw14NdCwl0pIa185fUfmjWuIKo/Bwqp4IirWE1f4B9axCDe98ai/f7PGwgSb9yOCJbZWLGciEL+VbywPaTxHJ4cLgDrJOgq1MFZzENYYfaU9NYLoKCfYEFoTSXg7R02VfTrLVEbqTQsSUVTUz4A8+HMFbO0P/XxrIR7IBAH64JmXrwMaTo39vJ0b7dGJ+arDmVyOtF3GnvE32ZOBCI5wGWzf9ZT4WIrmtxXHadRGR4HJaZH1PcgKGIo+b701B1I7HiDMMTepbo/+Bx4LhLM6oyfon+NvWsw1tWb9KEBpYrIiJ7Jfh85AJCodOwJXlll4xFJZpXyeCI5GxQA4ksLMjnIwjvTc= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 20:Tv40MMdo5k7NWNzatfyowmrUK/wWQx0urM8HTjj/OOJx9S10a7y89+6ZCa3sydjiImgUNPoG3jpveqXeyRNLTZGSxuqhjLCrDevNZoulC09fiMVpjDY5b8oLo7TXm12KA5SeROLK1RLx5Sr9kMw2Pyyfi7ZwH6ekPVPswsKGD4EuCxCPyLP3M4BU24gYZWZc4Y5x1BeO0bF2q7/Qet7WIb9XkI80n6gQt5yW9wqhI5ejUoo6AdONmEDjEPjcr2olsP1+m4pWUzd6VfJbyGrDaPftXBzUrkAE8l+b/1ML+Kvx4tquTvPicTtAz3kJ6uQPzkyvDNiCNOA2wAPMkic0jsT7e+q7oEY0Z+h+TJZfGYsDau8BpGKUoLhN42Rte09EEcZcRgEYigRgv1PxfC+xu0i8Nokom+M61rkNGSaY1r1lx6HjbXMxWqhS02KnprsMBXacwEegjJ5S0pNFCIgQq7sAQme6Kkl37EjPDvwJG9lcE/ItOUV+Xs4ezyjDiXQg X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(767451399110)(167848164394848); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(2017060910064)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123564025)(20161123558100)(20161123555025)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(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?MTtDWTRQUjEyTUIxMTQxOzQ6MmFlZXZZQ1oxMVlNYWk2d1JUclZ2U2QzV3JR?= =?utf-8?B?ODFPTWpxa3ZxV2NkdGY3RUhjc2g5aXpjSXBRRFFSTlNVc0JNSzRGVDRwRlhj?= =?utf-8?B?dXEwSTVEbnZiM3dJdnNkVG1VWHpiNHVBSmNVYzdoRHh2YkkreDVYajdHbGFD?= =?utf-8?B?R3hrc0JHViszVEVCVFdyeWpUaW5ZdUVhdFlobHpicjkyN20zZHBYZm55NzJh?= =?utf-8?B?RHRob0FqTkY3UHd5QjdyY3NOVGFkM3RsVU1xUkFqZVFXeFFkS3gzVytmc2py?= =?utf-8?B?N0E3ak1hcWpDRjcvVThtRWJKZHFQRmV4R0V3aG9DSGdUUjYvV0NIcTVmbVBH?= =?utf-8?B?Q0hTQThhVTJ1T3hRcFgrUEVQMVJRV3hLQTJuSW81SG1nZzhzT0ZIemlGRXlr?= =?utf-8?B?bXZyalRwdEZUU0didEU2TUppSVd0MEhCY0ZBU2wwTGk1VmZEOW5qbmRWTmtj?= =?utf-8?B?cTRjYmcwaDZ0S2k4TS9lMC9GMWxpZHo4Z1lNTU5leTJJNDhHdXJiSFdjMWZP?= =?utf-8?B?d3RQRGg5NlNNOFBDZCtVZWk3dWRrczZMODRSNi9rd3ZNSDFjR1RCeWhWNE5L?= =?utf-8?B?eks2WFc1VjRMOHhvYjdBVWhqeWpxazI3ZHZTUmpqRFlQNWg0TWNiWnJBK01C?= =?utf-8?B?eUM1NDRRb0c2YUwxVmF4eXBLYzJjKzN1UU90R3FucDZYNnQ4MTVXMDRoano3?= =?utf-8?B?cW5QTmFWdmpUckZ1WUJuTHVIU2svRitYT21ybjU1bFVaOS85ZTN0MmtSQ0Yx?= =?utf-8?B?VWpienZoUHAxYkNWSDE2UUNjZ2pjWnhjQmlnRzlvS1lNVW1oVXd5VjZiNGd1?= =?utf-8?B?QnJ1QitZaEJ4S0xGRjgvNUkwSVd6Zi9UQjUrQlpkSFVjRkI2cElQSWcyNFlX?= =?utf-8?B?UG5UTnhNOW92SU1vcjdkODY1UFUyZlh3cUcxRUZxQ0E4bFRRUHdDQnRlZVpw?= =?utf-8?B?UUVFbWxDL0Z2YzRyZWdPQXZiSlkvc2FCOUthbGc4SjNnbmZYL01XSmtPS1NH?= =?utf-8?B?WllEeUg4MUlLeDIwOGY1c3lJWDEyN21nMXBhSE81dm5GVVBqTytEK2s5alZi?= =?utf-8?B?dC9SR3JRMUJuN01FdzJDTG9qUUNHVUpKbjF1djBhemZDeWV5Yzh3ZEFaV2Rr?= =?utf-8?B?SmgwbDdCR05qMFE5TFk5a2dpdy8wYVRSQTFvYWJjZWFrM21aV1ZIUm5qR0pv?= =?utf-8?B?RUxnckhsV0lFQ3QxSnFtVWlrb3JVS2VVR1ovNW4yVlB3aEVwOXNBMy9PdWE2?= =?utf-8?B?dkJ5WHRuWjAweEVnbG1keEFSNVZtbTdUeDJtcnZGbEJrK2pGK3Iza0kxNEww?= =?utf-8?B?Q2phcGNoZmxsMUVMUDJ3eSs5Zm13ZEJFSlJYV2lOY3FGaVpBS3RDb0tnR3ZV?= =?utf-8?B?OTNqMFY3Ly80SWdka0ZRMzcrckVsMTZac2ZRUnpoN2NvbjZqQUgrRFk3b3M2?= =?utf-8?B?WGZwS2VUdHAyM3FtR2V4blJlQzdDSlU4R3BZMzVhS0FUclVteFpWc3l2dFBY?= =?utf-8?B?OWxPdks4TGw3Z0tteVhzWGsvK0g0c01EUXBMUGoxOW1OV0N4Rzc5TTBoeG9h?= =?utf-8?B?azFMaVJXengvTExMNjNCTndQVmwyQW83RkEzQXd1T0ovaDdZVE5WV29ERG4z?= =?utf-8?B?MGlsSE1IcDRBOGRsdkhTZW5Dc2tJZnpVZVNRS0MzWkl5c3dmSWg2cUtZN0M4?= =?utf-8?B?MWZHZWkxcWJsaXlidzExU3dWWUx6aEk0M3pXdGNrd3NyMmtkNEF4T0c5NG9z?= =?utf-8?B?S1ZkcG9JNkI5YTFWaTVteU9Hdi9wTFA0YW1FdHowK1JCVkVubWo4UlY5QnNN?= =?utf-8?Q?BSRvSC6r5Lxw?= X-Forefront-PRVS: 0361212EA8 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39840400002)(39860400002)(39450400003)(39850400002)(39400400002)(39410400002)(5660300001)(50466002)(23676002)(230700001)(305945005)(7406005)(66066001)(81166006)(7736002)(478600001)(8676002)(2906002)(47776003)(7416002)(83506001)(97746001)(53416004)(6666003)(54356999)(2950100002)(42186005)(103116003)(4326008)(6116002)(6506006)(25786009)(55016002)(1076002)(50986999)(189998001)(3846002)(54906002)(86362001)(72206003)(9686003)(33646002)(53936002)(76176999)(38730400002)(110136004)(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?MTtDWTRQUjEyTUIxMTQxOzIzOk1pQW5GUWRLZys3cE1xdnVmVTBxZCt1RjdV?= =?utf-8?B?Wk90SElBd1hVRHhzSzNjclNxREVTMDVUUm9PdE9vZlBRc1FPYWVheHhoTlpO?= =?utf-8?B?YVRRUVo3S3RnZlBsTjVCY0t1U1cxQmRnS0pLcjZyNWk2VFUzZjlTVWhFU0kv?= =?utf-8?B?TEdEWHBEdWEwenBiQnVxb3U1VDhUYTVCNjRUamtIMVdZSW1nVE5DTEhMOUQ5?= =?utf-8?B?SjU5REh5VXNNWjYvTW93Sk16SDRKNG9lYzFMOE9DcUJxVkIzb2tFZEdGTHAx?= =?utf-8?B?eUcvdkZtRDQwREJoTktoYWpJd2kxcXUrT1NsVDhDdm95MlNLQ25mb1dsZzhK?= =?utf-8?B?VE5SeG5nc2JkTVJIUW5BQU9BSkJyUy9TakpGcFd1cFp2UFFJS0JMU2d6bEFi?= =?utf-8?B?WVhHbVE2OXFHSm8yRlRBbmJEZm55aC9EcHhMR0Z6WTFSMWNWZnNLUXVTd3Iw?= =?utf-8?B?WlRma1pMMHNXOVlac0JGOFphK0ZmVkN5RGx2elAza3RibXVtakduKy9sdVQv?= =?utf-8?B?Q2dta0xDWFB6c3FBZVJWTWhqRWp6b0NzTTdkdW9oR1p1NTBaT24rWWhEcGk4?= =?utf-8?B?Z0lPTi9Na1JJV3o5SFJDZlBRSTFJcTNnbERPbnkybGdWRXdVaE5ZOFUvR1Vk?= =?utf-8?B?VVpVVUhva1JuV1BYL2dpRWZpbFJ1K0NOb1FYWkNRN0J6ZU02T3VONWZLL2tL?= =?utf-8?B?d0tveHVMenF0Zmc4MGIzc0QrL1ZtVzJQVHdIb1ZhZWZTbVdqWEhFUkVUUmwy?= =?utf-8?B?Ukt3RnJIbGdyUU1ZSlFMUHNrK3d6UE5ibHVzK01nYjNIZ1ljMTNSTEpKWEt3?= =?utf-8?B?SG5US1hSOFE3V1FnN1hQc0FuM1NhOElRdENuc1BCZ1FhRmREczU0YXRXdXhO?= =?utf-8?B?aXIyK242bmZ4VzdwYWYwVTFUL2FIRDE3eG5tT0l6anZqcjA3Y2pVUnJuZDBX?= =?utf-8?B?ckl3QWlvcXlUWnloNENrVjNiQWt2RnE0RTBMUnl2NFp6aEdkNFdTMmpXV0VT?= =?utf-8?B?V0VwaHg4RktpQnA1UkFhWittemNNa3dwZVBpcnJ5bERkYmNsaWRUb3RQSUY5?= =?utf-8?B?Z3lwMm5ncmp3VytFSVhpb1VNNHZWRUFZUTJ2U2lzeXVLeVduTzBkQjVvdkEy?= =?utf-8?B?NEVRcjE2UXdZdGJZRWRCQVB5OHhaL3l4MWtmMjFDUzJBeW1BVStRQkJ5Qkow?= =?utf-8?B?MEJtdkJGejJyeTFWLzBMRXhzSHpKOGd3cC9tQ1crYzErU1pnU0VleWdOT1Vr?= =?utf-8?B?WkY2NE9PYnJ6Z1h3bVdXeDRuSUpJVEdQZVdseGZ4cEVXN2szWDVlRlFPcXUz?= =?utf-8?B?MFlCNGpvWXBUbjdmeTJKRFFVUmErTlVkVnIvZDNjcmNta3MyZ01sdGNWZWUw?= =?utf-8?B?UEFsaWVUVXM0NFVzcWVaam1neWFzNlJnYVNpdHZ0L0FieTZOcGJDQk9EQ1lH?= =?utf-8?B?d2Noa3RScEdzUlJhb2N4Tis5N0pVOU0rb1dEWFQ0K0RnU1ZtcHFnRlNMVi9K?= =?utf-8?B?b0htNkc2bk9YZ2pQV2xiS2gyT05DcnVxLy9TalgyV1QyVmlOdStxdWxYRk9Q?= =?utf-8?B?Zjk3V3VTSTl5YW4zMXNGRGd5K1ZueHIxYXpZYldKZG9sNE5wOFk3YVU5cFBL?= =?utf-8?B?amdjR1l6YUhmTXM0Z3ZlMnpqRSsxOTBIdnFWSmx5QkRJVkdISnJhSXd3PT0=?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzY6K0ZpdXdQc1hjVU1pTXhEV0NXRzhHZjEvQ2dt?= =?utf-8?B?OVB6WnE3SjV4NndiQ2J0dWZWVDNYNUgzZjcrQ0FaWnRHbDJrY21aelhJUFpm?= =?utf-8?B?elFZTU5NbjF6d1BaTjhYRDdSL0Y4anV3V2RtSmxWRnIyc0JETGwvelFEWld5?= =?utf-8?B?Zng0VjV4U1JQVlRTb2lsMmZrQU1DQnNyd1gxYUN1bVI2TzNMYnV6a1VaQ0Fz?= =?utf-8?B?UCtxdVkzUldCbGp3MXFabkIvcFZrNmtYNVE5RGpoMUtKY3JmV2FSRnJtQWdq?= =?utf-8?B?bkpLUWNwaDE1NjI4clRsQ2hjNEhOQVo3aTBZTVpUQ3NrZmw3T3VwYnAxekFZ?= =?utf-8?B?enV1YnJMbjJiSStuN2o5T25Fb1Fvc3U5WmYzRmxuRXRxOTB5QUlpRVl0VHJS?= =?utf-8?B?cHowS2MxL1F2cEd5TGhzVWl0ZUpUSmdkVXpWQkVZeDNBWmdmWndDVDVXeVVt?= =?utf-8?B?SGRld2c4YnhvOUc2TUVORUVMbUg5dFdUOXdUQVR2aHY4OWUwZSswL2VYOFFl?= =?utf-8?B?SVlwQjFoNC9la3FFRFdZMWZWNFoxMjhzdlZOYldIUWtON3c2azI5VEVJeDFC?= =?utf-8?B?OHlvUXIrWURaZTNFdDIrL2pLYzhBWHF6V2RRZ2twa0Zlc3A1VFBqL3hMV01x?= =?utf-8?B?aHhnN2JHK1dqeFU5MWcwOFgvVFVaOU85eldRVG91WStmZnFtMERpV2FnZC9L?= =?utf-8?B?a2xuV0tPMWxYTTVZZ1hld2NtVlovUHRWQWQxdDlaNVhvK2x4d3ozOXdXdWZT?= =?utf-8?B?MDluSHRtaVZpdU5hNURkTWQzV3ZxcU9oaVFDT3kraG5CVUNkZWoweFhpVExv?= =?utf-8?B?TWZQVG52dU51VmdEeGx2L2ZFZi90cFZmaHkrWng4aUU5VG9iWTVxMGlBbFBU?= =?utf-8?B?aTFjWVgyZysrVkRKTkxpRndhYXBIeE0vSHVuRDJwMEYyazNSK1R0bSt0TnJY?= =?utf-8?B?ODlUdUxDZ3ZkMHg0Q29acUVYN3djVVFNRjJmMW9KdHdRZUxPQ00rZGVtSGZq?= =?utf-8?B?dFVYaVoyRnVaNUN6cm03QjRCWFpUMG8vYW1wc3FJM0x1T25PS281WDJxSEl6?= =?utf-8?B?L1FwSlFhbENPQlg1SG8rUld4VGpBaUJSZjJBRXRCaHRQN0ppZlFEeXdaMHlx?= =?utf-8?B?VTZOSXZDQ29KVFNHZWN4Uks1cmR6TDZjSVlheEFiSk9zenJLNmxlMTR5aWZT?= =?utf-8?B?amhoNGtKb2ZoVEZveHNLTFd0VDFMVmUySWZNdGw3WWpqTEhpOGJLblpqdVlv?= =?utf-8?B?cVpyRXZhY2R0MUJXMTBRWU55VlB4QnlkYit4VzU2eUxlclR6SGg0OGo1eWlN?= =?utf-8?B?NWs5U25EdXNrZEpLL1lxcDFNbVlJYWJ4QU51eG9NM1NON2lqTEdkNmNRdjE0?= =?utf-8?Q?NDbjjCD?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 5:28EJVvL815+6gkrHFzBPdYVwsvhTlDY1jqW2du0FOOYnRGrccwmdcPKE9jGlJqKAWGwDFKmbSwNMHiXOnRh/644KZC1tEliaDyltFbZLujYfce0Dd0/M1JDvAlcC1ly0HEmTFck8NsuTB1w5o09tLeiuYx+cDodrYiX5k7k2qnYhf92ekUfMVOZg5pxUX5fs2ldDwKk8vVfif83WJktV3/dlBFNiG5EM2jH404bHVETQTr0u609ShR6+Wn0O0PWq4HYkiZ7nIwMy1fnhz9nqDXv53VT5oCV/4x3a7jYE8hDk4rWDp4CyniucBj8MaZ9vkhnef4fScE3s0LTikuzwEj3nZSLDtLhm4yTW1+fG+H0gzuieG3CbWqbtsC62uqmtWOFDRgFCZfko1HCM1UcpPMoH3f1TZQw/S3t0Amf7SDvpjl8s+JQlZcWuJVYvjQXu7xAaRR4NtYrR11d28qQcNW2NNZseOg8fe1l9qWLan3AkY0kAAsxzBHh0lRFKmNrC; 24:LMtIZWeQihJmQEmjxJolM+4Dj7CWOck71PA0G9ZBVMW/AkSOMZ5Y6EoT8ZgsLUFx6F+jkO9V+/Gsn4E6lee7tC5tf2Il/h9xS/Hujx9i1Hs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 7:wap1mm0T6Z43CS7owVhQPcfDYReFu/6lW98tWEsGpjN1xIefxqnOoZ4E+3+L23A1pTixsh/8RgN1ciBn17ATI0hm8rfW3U2CdqliPpTAMgJBtvnBxVL2sHVe8E9KTIYt8xZqqlEYtmeqKCY1xJ5M/0iyguLogeIt0Ue32fiJZ95egDYfw3gHb93roIjWzdmbGOHZlEezh51g+ViHA7pEmo1bWAgEbiFrzNBFw6sa50iAfXnlzMsEgeCUnryu+P8LUi0DklYEA1fRg1P6W2S73k6boFGS7AiWb9+hFJ/8ycWT7Gdt3UN2vHpcAQglGKepzWtJv3D10kW4HxuOXVDpeZefNwDUzIfJW+CD4whSDN3fo5LD3mKjBpNswaRobsKDbKLhkf/1HiMXO122XHeZXjNG2Mgz55aNbYE9RYNpSVSa9nT523zbAvI/JR6zJr1aKOyXDcMib5e/oEH18a3XdeRHG/NjTIQvM1k/2MQcCGpR51pCbw9VNTiuceoTZ9QbSFZtzaHD5fMSpeuAjD9rgZgNT+9yJCmq0tCfLEloi6TTbbsQ7RZTEzA+NzrfoiEjVsRt/QihgvJl6OznMZWXWwXeXWCzZx92/cbIi0WWX3BMe7rgIrYex7sF9BgJmCM6ns3olPmETSoav6Ae9a1q7B6NzsXnwULUlveardfImoKigulNVHYu+H3fjTCrIX0Y9Si7KjAZQj0DuVQvvcpZztAhL5s4+NBJO2BASg/oRcVQgA8JwGxGOdCUAprbBZ1PcBt8E0fajjXoeHMNEKAvETyqqDvu/9FB7bas08h8BS0= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 20:lXHxDc7lpTdWo4ypSJtXbyuEhNEDIbMHY3At0wh7qz/EMzhronnirGrASWsbPwJ/4ocdCkXBfExM+GzTNUGzZYnOx5hbmycOsPupOrYuM8gSt+24ko7E9VUJzEzxFj1DZkeUDEaNI7G5D6SxFMgjKcuvQ/MDWlJpogZtf8obpA9GnKtPfh6vVikDUNXbhu5P4JsHtl9o/Kp9UGlAtp8KhB08LYzv/Dq4fcNqBMxf4SZ3L/8JTkf+tYZHRoZJHRh1 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2017 13:42:40.8458 (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 v9 24/38] x86, swiotlb: Add memory encryption support 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 Since DMA addresses will effectively look like 48-bit addresses when the memory encryption mask is set, SWIOTLB is needed if the DMA mask of the device performing the DMA does not support 48-bits. SWIOTLB will be initialized to create decrypted bounce buffers for use by these devices. Signed-off-by: Tom Lendacky --- arch/x86/include/asm/dma-mapping.h | 5 ++- arch/x86/include/asm/mem_encrypt.h | 5 +++ arch/x86/kernel/pci-dma.c | 11 +++++-- arch/x86/kernel/pci-nommu.c | 2 + arch/x86/kernel/pci-swiotlb.c | 15 +++++++++- arch/x86/mm/mem_encrypt.c | 22 +++++++++++++++ include/linux/swiotlb.h | 1 + init/main.c | 10 +++++++ lib/swiotlb.c | 54 +++++++++++++++++++++++++++++++----- 9 files changed, 108 insertions(+), 17 deletions(-) diff --git a/arch/x86/include/asm/dma-mapping.h b/arch/x86/include/asm/dma-mapping.h index 08a0838..191f9a5 100644 --- a/arch/x86/include/asm/dma-mapping.h +++ b/arch/x86/include/asm/dma-mapping.h @@ -12,6 +12,7 @@ #include #include #include +#include #ifdef CONFIG_ISA # define ISA_DMA_BIT_MASK DMA_BIT_MASK(24) @@ -62,12 +63,12 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) { - return paddr; + return __sme_set(paddr); } static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t daddr) { - return daddr; + return __sme_clr(daddr); } #endif /* CONFIG_X86_DMA_REMAP */ diff --git a/arch/x86/include/asm/mem_encrypt.h b/arch/x86/include/asm/mem_encrypt.h index ab1fe77..70e55f6 100644 --- a/arch/x86/include/asm/mem_encrypt.h +++ b/arch/x86/include/asm/mem_encrypt.h @@ -34,6 +34,11 @@ void __init sme_early_decrypt(resource_size_t paddr, void __init sme_encrypt_kernel(void); void __init sme_enable(void); +/* Architecture __weak replacement functions */ +void __init mem_encrypt_init(void); + +void swiotlb_set_mem_attributes(void *vaddr, unsigned long size); + #else /* !CONFIG_AMD_MEM_ENCRYPT */ #define sme_me_mask 0UL diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c index 3a216ec..72d96d4 100644 --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -93,9 +93,12 @@ void *dma_generic_alloc_coherent(struct device *dev, size_t size, if (gfpflags_allow_blocking(flag)) { page = dma_alloc_from_contiguous(dev, count, get_order(size), flag); - if (page && page_to_phys(page) + size > dma_mask) { - dma_release_from_contiguous(dev, page, count); - page = NULL; + if (page) { + addr = phys_to_dma(dev, page_to_phys(page)); + if (addr + size > dma_mask) { + dma_release_from_contiguous(dev, page, count); + page = NULL; + } } } /* fallback */ @@ -104,7 +107,7 @@ void *dma_generic_alloc_coherent(struct device *dev, size_t size, if (!page) return NULL; - addr = page_to_phys(page); + addr = phys_to_dma(dev, page_to_phys(page)); if (addr + size > dma_mask) { __free_pages(page, get_order(size)); diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c index a88952e..98b576a 100644 --- a/arch/x86/kernel/pci-nommu.c +++ b/arch/x86/kernel/pci-nommu.c @@ -30,7 +30,7 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page, enum dma_data_direction dir, unsigned long attrs) { - dma_addr_t bus = page_to_phys(page) + offset; + dma_addr_t bus = phys_to_dma(dev, page_to_phys(page)) + offset; WARN_ON(size == 0); if (!check_addr("map_single", dev, bus, size)) return DMA_ERROR_CODE; diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c index 1e23577..6770775 100644 --- a/arch/x86/kernel/pci-swiotlb.c +++ b/arch/x86/kernel/pci-swiotlb.c @@ -6,12 +6,14 @@ #include #include #include +#include #include #include #include #include #include + int swiotlb __read_mostly; void *x86_swiotlb_alloc_coherent(struct device *hwdev, size_t size, @@ -79,8 +81,8 @@ int __init pci_swiotlb_detect_override(void) pci_swiotlb_late_init); /* - * if 4GB or more detected (and iommu=off not set) return 1 - * and set swiotlb to 1. + * If 4GB or more detected (and iommu=off not set) or if SME is active + * then set swiotlb to 1 and return 1. */ int __init pci_swiotlb_detect_4gb(void) { @@ -89,6 +91,15 @@ int __init pci_swiotlb_detect_4gb(void) if (!no_iommu && max_possible_pfn > MAX_DMA32_PFN) swiotlb = 1; #endif + + /* + * If SME is active then swiotlb will be set to 1 so that bounce + * buffers are allocated and used for devices that do not support + * the addressing range required for the encryption mask. + */ + if (sme_active()) + swiotlb = 1; + return swiotlb; } IOMMU_INIT(pci_swiotlb_detect_4gb, diff --git a/arch/x86/mm/mem_encrypt.c b/arch/x86/mm/mem_encrypt.c index 0843d02..a7400ec 100644 --- a/arch/x86/mm/mem_encrypt.c +++ b/arch/x86/mm/mem_encrypt.c @@ -13,11 +13,14 @@ #include #include #include +#include +#include #include #include #include #include +#include /* * Since SME related variables are set early in the boot process they must @@ -177,6 +180,25 @@ void __init sme_early_init(void) protection_map[i] = pgprot_encrypted(protection_map[i]); } +/* Architecture __weak replacement functions */ +void __init mem_encrypt_init(void) +{ + if (!sme_me_mask) + return; + + /* Call into SWIOTLB to update the SWIOTLB DMA buffers */ + swiotlb_update_mem_attributes(); +} + +void swiotlb_set_mem_attributes(void *vaddr, unsigned long size) +{ + WARN(PAGE_ALIGN(size) != size, + "size is not page-aligned (%#lx)\n", size); + + /* Make the SWIOTLB buffer area decrypted */ + set_memory_decrypted((unsigned long)vaddr, size >> PAGE_SHIFT); +} + void __init sme_encrypt_kernel(void) { } diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index 4ee479f..15e7160 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h @@ -35,6 +35,7 @@ enum swiotlb_force { extern unsigned long swiotlb_nr_tbl(void); unsigned long swiotlb_size_or_default(void); extern int swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs); +extern void __init swiotlb_update_mem_attributes(void); /* * Enumeration for sync targets diff --git a/init/main.c b/init/main.c index df58a41..5013cbc 100644 --- a/init/main.c +++ b/init/main.c @@ -488,6 +488,8 @@ void __init __weak thread_stack_cache_init(void) } #endif +void __init __weak mem_encrypt_init(void) { } + /* * Set up kernel memory allocators */ @@ -640,6 +642,14 @@ asmlinkage __visible void __init start_kernel(void) */ locking_selftest(); + /* + * This needs to be called before any devices perform DMA + * operations that might use the SWIOTLB bounce buffers. It will + * mark the bounce buffers as decrypted so that their usage will + * not cause "plain-text" data to be decrypted when accessed. + */ + mem_encrypt_init(); + #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start && !initrd_below_start_ok && page_to_pfn(virt_to_page((void *)initrd_start)) < min_low_pfn) { diff --git a/lib/swiotlb.c b/lib/swiotlb.c index a8d74a7..04ac91a 100644 --- a/lib/swiotlb.c +++ b/lib/swiotlb.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -155,6 +156,15 @@ unsigned long swiotlb_size_or_default(void) return size ? size : (IO_TLB_DEFAULT_SIZE); } +void __weak swiotlb_set_mem_attributes(void *vaddr, unsigned long size) { } + +/* For swiotlb, clear memory encryption mask from dma addresses */ +static dma_addr_t swiotlb_phys_to_dma(struct device *hwdev, + phys_addr_t address) +{ + return __sme_clr(phys_to_dma(hwdev, address)); +} + /* Note that this doesn't work with highmem page */ static dma_addr_t swiotlb_virt_to_bus(struct device *hwdev, volatile void *address) @@ -183,6 +193,31 @@ void swiotlb_print_info(void) bytes >> 20, vstart, vend - 1); } +/* + * Early SWIOTLB allocation may be too early to allow an architecture to + * perform the desired operations. This function allows the architecture to + * call SWIOTLB when the operations are possible. It needs to be called + * before the SWIOTLB memory is used. + */ +void __init swiotlb_update_mem_attributes(void) +{ + void *vaddr; + unsigned long bytes; + + if (no_iotlb_memory || late_alloc) + return; + + vaddr = phys_to_virt(io_tlb_start); + bytes = PAGE_ALIGN(io_tlb_nslabs << IO_TLB_SHIFT); + swiotlb_set_mem_attributes(vaddr, bytes); + memset(vaddr, 0, bytes); + + vaddr = phys_to_virt(io_tlb_overflow_buffer); + bytes = PAGE_ALIGN(io_tlb_overflow); + swiotlb_set_mem_attributes(vaddr, bytes); + memset(vaddr, 0, bytes); +} + int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose) { void *v_overflow_buffer; @@ -320,6 +355,7 @@ int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose) io_tlb_start = virt_to_phys(tlb); io_tlb_end = io_tlb_start + bytes; + swiotlb_set_mem_attributes(tlb, bytes); memset(tlb, 0, bytes); /* @@ -330,6 +366,8 @@ int __init swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, int verbose) if (!v_overflow_buffer) goto cleanup2; + swiotlb_set_mem_attributes(v_overflow_buffer, io_tlb_overflow); + memset(v_overflow_buffer, 0, io_tlb_overflow); io_tlb_overflow_buffer = virt_to_phys(v_overflow_buffer); /* @@ -581,7 +619,7 @@ phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, return SWIOTLB_MAP_ERROR; } - start_dma_addr = phys_to_dma(hwdev, io_tlb_start); + start_dma_addr = swiotlb_phys_to_dma(hwdev, io_tlb_start); return swiotlb_tbl_map_single(hwdev, start_dma_addr, phys, size, dir, attrs); } @@ -702,7 +740,7 @@ void swiotlb_tbl_sync_single(struct device *hwdev, phys_addr_t tlb_addr, goto err_warn; ret = phys_to_virt(paddr); - dev_addr = phys_to_dma(hwdev, paddr); + dev_addr = swiotlb_phys_to_dma(hwdev, paddr); /* Confirm address can be DMA'd by device */ if (dev_addr + size - 1 > dma_mask) { @@ -812,10 +850,10 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, map = map_single(dev, phys, size, dir, attrs); if (map == SWIOTLB_MAP_ERROR) { swiotlb_full(dev, size, dir, 1); - return phys_to_dma(dev, io_tlb_overflow_buffer); + return swiotlb_phys_to_dma(dev, io_tlb_overflow_buffer); } - dev_addr = phys_to_dma(dev, map); + dev_addr = swiotlb_phys_to_dma(dev, map); /* Ensure that the address returned is DMA'ble */ if (dma_capable(dev, dev_addr, size)) @@ -824,7 +862,7 @@ dma_addr_t swiotlb_map_page(struct device *dev, struct page *page, attrs |= DMA_ATTR_SKIP_CPU_SYNC; swiotlb_tbl_unmap_single(dev, map, size, dir, attrs); - return phys_to_dma(dev, io_tlb_overflow_buffer); + return swiotlb_phys_to_dma(dev, io_tlb_overflow_buffer); } EXPORT_SYMBOL_GPL(swiotlb_map_page); @@ -958,7 +996,7 @@ void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr, sg_dma_len(sgl) = 0; return 0; } - sg->dma_address = phys_to_dma(hwdev, map); + sg->dma_address = swiotlb_phys_to_dma(hwdev, map); } else sg->dma_address = dev_addr; sg_dma_len(sg) = sg->length; @@ -1026,7 +1064,7 @@ void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr, int swiotlb_dma_mapping_error(struct device *hwdev, dma_addr_t dma_addr) { - return (dma_addr == phys_to_dma(hwdev, io_tlb_overflow_buffer)); + return (dma_addr == swiotlb_phys_to_dma(hwdev, io_tlb_overflow_buffer)); } EXPORT_SYMBOL(swiotlb_dma_mapping_error); @@ -1039,6 +1077,6 @@ void swiotlb_unmap_page(struct device *hwdev, dma_addr_t dev_addr, int swiotlb_dma_supported(struct device *hwdev, u64 mask) { - return phys_to_dma(hwdev, io_tlb_end - 1) <= mask; + return swiotlb_phys_to_dma(hwdev, io_tlb_end - 1) <= mask; } EXPORT_SYMBOL(swiotlb_dma_supported);