From patchwork Tue Jun 27 15:07:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 9812365 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 1706B60351 for ; Tue, 27 Jun 2017 15:10:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0B1F9286BE for ; Tue, 27 Jun 2017 15:10:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E7598286BF; Tue, 27 Jun 2017 15:10:23 +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 C87D4286E2 for ; Tue, 27 Jun 2017 15:10:22 +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 1dPs61-0007OI-43; Tue, 27 Jun 2017 15:08:05 +0000 Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dPs5z-0007Nl-Bz for xen-devel@lists.xen.org; Tue, 27 Jun 2017 15:08:03 +0000 Received: from [85.158.143.35] by server-7.bemta-6.messagelabs.com id AB/0B-03620-2D472595; Tue, 27 Jun 2017 15:08:02 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA1VSe0hTYRTvu7v3ehVvfM3C08qMWWjRfISUEPS g/jB6iVagQXpXt22xV7tTFgQ9sKw0sbIiFZ8L1sLMKDVDy9WWiqZlWA3KEOkPaZm4iBKie3fX 6/vrfOf3OL8Dh1EoL9MqhnfYeZuZM6rpKFKfsjRF88KenZv6xBmf4ZxuIjeiTO/DWSIL5VEGs 9biKKD05V9+0tavBY733rP0CdSSdR5FMSQuVsDH3h+U9EH4MoLm15cU0keJTxPw+fEP8jyKZG i8CkYDQUKqY7AZyoa7KKmej+sJGL+KJYECB2jofj5ASwCBF0N94w2FVJN4OcxcnQ2JWZwJz4Y 8IXEk3gp1V0ZDfaXYH/jeFSHVC/ASuDlSTMn8edB3fUIMwYgDVkBLZ4rUVuB4aA/UhOwBL4X2 b99oKQPgEgSemQpS9lwGVTPDETIpDryDNaRc74DmW76QJ+AE6C/eKWt7CHgTqA4bDdLQUTodF q+EwLXq8LTxCHj1SCuTxim4MNsfVrSR4JpooWSWEQbHusPqPHCengj3Byho8O+RBQEMb6eq6Q qkqfpn1aq/q1b9s2o9UrhRksDbinibJm11stZm0OntJs5g1KSlrkk28YLA6XgjpxWSD1hMd5F 4FXPE14FGWrM8aCFDqBewtyA7VzlXazl4VM8J+nxboZEXPCiRYXCj91SOijRbzLwaWLcg0ubZ eB3vOGQwilf2mwlMtHo+O2oVYVawcibBoJOhfqRh/EP3goQy5KGKZUskDyyR9IXmPxa/b/Uli lPFsEjMp4y28jaTwf4/PoliGaSOYRskl2iD2f5n0qQYghBDkLVZUgg79xdSnUAnp7b0Wo5UVB Z5/Aufju3azu4/4mrYfSw4VHEw/X5nhtudf8O/ecOY+XZ0Ldq07kwmTNl7qj/5Co/fKe2I/Hz bqUtcXrTWS+X2nHHtbapcdO7V9Yx3rlb3dMGnjdvKuy8ml8z4Ouva2KaS9MmkBOf2wznGfX3r mrN/ri/zPQju/qBRk4KeS1upsAncL3J/mKSmAwAA X-Env-Sender: Thomas.Lendacky@amd.com X-Msg-Ref: server-11.tower-21.messagelabs.com!1498576080!75799067!1 X-Originating-IP: [104.47.32.47] X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG X-StarScan-Received: X-StarScan-Version: 9.4.19; banners=-,-,- X-VirusChecked: Checked Received: (qmail 52285 invoked from network); 27 Jun 2017 15:08:01 -0000 Received: from mail-sn1nam01on0047.outbound.protection.outlook.com (HELO NAM01-SN1-obe.outbound.protection.outlook.com) (104.47.32.47) by server-11.tower-21.messagelabs.com with AES256-SHA256 encrypted SMTP; 27 Jun 2017 15:08:01 -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=PupwITcbgZOiYFhEjj5P7mzNS7zg/t6PUiBkt86zAo4=; b=a67ffm79RPtpTNbPy5a7japdJCJQcVXzoaYwZv9k+mHHHZsltgwCeb6DpOj6KxSJT54Mk1PA0iI2mwQQsKzaGXX3BY84TVFC8DyIhuwvyTBmHaRWMDZ/SRc0OhZkc9l8+AsRdAXxHoNWQwjz3FkRYMA3uI2YljpPKJwvXD9eWtI= Received: from tlendack-t1.amdoffice.net (165.204.77.1) by MWHPR12MB1150.namprd12.prod.outlook.com (10.169.204.14) 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:07:55 +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: Tue, 27 Jun 2017 10:07:51 -0500 Message-ID: <20170627150751.17428.63752.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: DM5PR15CA0012.namprd15.prod.outlook.com (10.173.207.150) To MWHPR12MB1150.namprd12.prod.outlook.com (10.169.204.14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 86ea5651-2c06-4b8d-cd3f-08d4bd6e4b58 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)(300000506067)(300135500095); SRVR:MWHPR12MB1150; X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1150; 3:/5HSUEv3CBZrYdoxspXXQGPWFbsgWyuV7I+TBdsQgoJn7SX6pIhUB/ubMmbidRvexnqeUaQlMP9xOpgQ7OcxRan97QvkkETem5gqtuwF8O/05Y5T9ChAgT2YQueX7GzM3u3p+uEicrDqo7Wcy45hjcGdWBnHvwsWAqlThsb42OFJdICBiCZ8vA9brdOg1HnC7PoHf61XIRsSFpO7nvJChXNvlul82M+rhqHMapgaEWpSb4+jIROwy1WGV1o+D4XuMyadJ8BmjCeeqaNiUftSAVHk2ryhEI0gntvFUiLdnIr/NbuDUmnkMJkfuq4plHXNyOqOUci2E5LqW3AKxf7jJgSoqV+HZV4jwmqZTaiRwxiFPgVnPbTwqDo56xSRxq6kftYBt/lNsXJRkMyIdqQZDKv9TijaPJkfCEgfvM0qP2W8A9D2RjtHsoNyjS4KxGfS7NsjmvMmHZRMHmRsz62rh9/UMtNSteq4UkipeUPgBQ7iseLsqiyD8NaLnAafuKQfh8sOhM6IX08hqc5mWbGDxSQ9KihsEtrHqJ8xlu7tu0wAO+pq7oJnRPzwtNFK0TOqtfNTAnjRbaJ0qkS5Uejb7YVRMS5XW6tpPvNVNRA3rVQpnq4lAG5JmbBoD8e98B4FzNx2gV+LHvHudAhsVxbzybniHBYxsScqytxCWRopcWTXQnTrjg5Z3SXh+W1gCMH06P4Nd8d1MSkyE0cYrT/Be38IC7OBUlHBtwHM8mmhy9i4dHDJUxRUSXSUsT02ZkEqbwv3wGIjR04gAb2sjF6acA== X-MS-TrafficTypeDiagnostic: MWHPR12MB1150: X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1150; 25:6/jS/MbT5515XveJJYeioCemcW2rd1uaN7ozmjTCUs6sqzqBQ6p+LzyXI6jGv4UEqMV5ZxuOtNt4ZTw4Gl4StxKiibbxEi5n5zfkWKGP71MQru6KagtVOLmj8tMjZ0MX7VNoctLm8jbIALvakzlcPAlDHz8sDExKrRMaMJUXS4V6EYKHUNd3WBpeJ47mD0aDeNAVzr1LKnt7OtuVKlEsJVGNDzePlYAwWW+3bJBr3HVqmjIwx0l4zqL8NGVhDiv7ssLzwvd+8M6E44Q1WPhTFE+pHnCFlRQNH3KCQy0NQk6xraq44sbfpzPh/Jq/qZbFS095VwsloVnGoM0VNwXbP4e/H5jVjdftkiBpHZxeZQHcJ/5fiAYCxCbWr+DTmZKFyU8QX73xm0K8LscTXxhcyJYg8J1mYcxyE+mr7qkNu9sqnZGr+4U12WkkrUaYO3pQq4Mam6P3NbOhEzFnH89MbprfB/WiaKS2ydoPg3o6AwcN4hJmj/4ghs+uSRhlFgZ9teyj2saw6j5YS1tuJ11luBBlJ2GLHZodp432sKdgDpvnnqZcn6nJ6+5H3SFycdnVkj39yYT/boPB7mpUF/wu+ncWZkBlUWfk8C6vzrlY7JD9A3uCJZWB9FhZfAAyVtaxGOxysO+GXL8uPoo9Y93CK9nCowJHwq45hbgOgJ+Yg+ybWayjuiPwbkx0uWJUZJRd7EVVW0/lzKgW2KBN8QsNiL8/aaSPYTufKsDnnfmVoBcC0mxZrFuoxFjXgA3zqhp+EaCOZjKQqYk1lilMi/sN6RGslasjI6e9ZzbmmxvsMMY20fOwGKgbOUE5WQ8IYSNgpNZlfrcUrW91ADQw/Ok31sHF20/MUYQ3QZ1i7NReJl0k+tpDvwQi0i679RR+Sg3z705XGBvhca2BrUAOBRuWqWroaiMMk0K8bOIfjgRTEvA= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1150; 31:U0/hd4c7XmwxsLI5pVF3MpX8LeNohyc5RDmlFbfLMLuCKOa9DktudFfDYcOgjee/EeEJjkIDOfjIpEIjBCH8xRSWdY4okp1ozggnik3AcEu3+RRn//uPVRpW1kgaSyN5/w1gLUNoE0GKat+HSWBvvVqz7z8gLAudicttOdpZdsaCKRcY38mZo0XXyIuJm65hD/SLt8en+QrCGynS7QL7XjtRwnzu6ewxb5D1A9fnyilQd6FBnOqpurwicKNypLVqouXzlMLmu9vIIOqM5XjNy/yMjUd1+krryCzsJpON5W740J6iXBqhdQ3lo8LN90muGg4vGhrm7UBWUXKrEm6sVQ70BWpJerjDEyVoRDYkIzxCnNu30dP0vrjZ6ymX3wFC2eDUICWJTjvazDW59gckWmNd8yEuHx6JgiWlK16W2I2CstT3LZ+U0mhzW4JiKuYiZtLiPcPzwR2k6+ygI4DNmox5gW5BAmjipYeekZ8Go2PdcAOaCWWjRq+cnboINLelJnhE9it51Ac7MAT3LpCQha2cxaP5EkUZSXiVO48rRosjYcpVhwdRrlay4dvD+GdERBNwteJrJy37CjytAjftkOTS1nBEAghZqNzsuB3Ume/oiPbsEPT32EWD6PtEmrZUoPgsP2X3m5ysO49wdv6NdX1bAWAfaZE5nK/YuKeZouA= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1150; 20:kKE6CsebrPtXUJLEPWeWXLMww9tWlxjbqJ+9BnqB7cDejSDnh+h+F6MIaebZxqSTf7OdX40rsqXG9CiWqF2TuJaloBTGsVZDBM9Q6TOr8zRYVYC6WrorBSldeobJ/+W8scVx/I8x2UJW7qPAnX6y4Z2sKdf3SphiBRf9iQdd4UesnvxrgxWFBJzGFzSlmZjSKeJde7WhT4xR1IZQisyo3owxPUj9pdVGjCvTiCp6fiUoUU2DQKTb0XLEoMJNGW6X4792TNxfpyfYMWRF5UNpUxQSyzhv9RHsFy9lpH1PT04zr4h2qdGXUBuiKDxhwFdLRERPrFe6uYpdaqoLlTKxAT2ETcxdy3zwKOj73wiJewVFzpzhg3Bx99rS1GZKSEtVSewj52U4IGWeDco+dyfsB6G/1E4lZVUVwnpaQ2yab9MgQSzpfmZhMjSitVxe48y8CTCWvrtyGY2OXPEeCBbnGdQNyTNedi2hdryXu18aQ80ammby6XVwucmM+uu7idvD X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(767451399110)(48057245064654); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR12MB1150; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR12MB1150; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTUwOzQ6dGdKTjhzVFpENE5pdWxUSFMxWHVkSEVYK21B?= =?utf-8?B?UU9Rbm51QTA0VHFTRmZlRzZtTHQxa0NhT0trMUdTelUxMW1hT3YwclNtWjNJ?= =?utf-8?B?L1I2NFRoUllMaitYZjBBWlRQcWYza1RMUUFrNHJQWVZ0Q29xM041akhnMGc3?= =?utf-8?B?U0VOc0ZSb3dkYWJ0UHJrZ3hEU211WEdZeGhhQnljQ2lOeVovV1RHOUJwUGN2?= =?utf-8?B?ejhueGg3SEczQ0RHQXhTZEU3TUVvZGxWOWR1ZlVzMUxMR2s1cUhMV0VHU2Jh?= =?utf-8?B?K3ZCL0h2dFJBSWs1RlA5bHVjZVdtNDVyM2VJc3lZLzU0bGNsb1dTVllVQmg0?= =?utf-8?B?bEpRRG1nczN3alczS09KNy9ZckhVT2xhenE5QzNqQWtnVWxQVllBT0J1WGlL?= =?utf-8?B?M3NLNGh3MmkwYlVEcThuK1hRNksyUVQ5WWZ2a0diRGhSdHJJQ0NGUmRBL0tH?= =?utf-8?B?ak9UL21wRDlSc0plUGpFcG1jSWFKendBMnc5ZlJUU21zemswcTFVeFFSZytC?= =?utf-8?B?QnhqeTB1TUdEcGVmZWZ6SUlHbkVMenlUcXJoaG5rZ25LTklSenJXclU0TjZy?= =?utf-8?B?TkN6ZVhjdjduOUwvYlJ5aVlUc2lIV3dsV3ZLZHoyY1poOXBYM2tZNytEeURQ?= =?utf-8?B?dzQzWWdjamJyVzQzZ0taS2pjZnpKL2lGalhzRVhEbi9oa1J5cTBRSWE4dUVE?= =?utf-8?B?VGM0YkdVanZwNjFaeThsV3J1aTBzUjM3NERRNGh4UVd3UVErSW51M2FTOU9n?= =?utf-8?B?bTk5NDBuREtuYjh0bW9pV0dIaVJEVVY2UnpsUVBLY1M3Vm9BbVZBQ3gzUDJt?= =?utf-8?B?QkgxRk5vcHRFVHVJd0hGd2FZclRTbDdhUTRZRHlSUnVsQ0JEV1NJa203dC9U?= =?utf-8?B?NldlcFBVNFdMVldRc0NoTENDdXkySTFNcGdsUzVBZkJMYW4xZDM0eXpFRlE2?= =?utf-8?B?R0hsQXhSdGFlSk42d29mRGdHN3FsRnNvSFZHMlNvbmtCd1NYaUN6eDlFK2xU?= =?utf-8?B?clRiM0lCLzhSYXhYZ1JEdS9KMmhuVStBeFpwUWplRnNVYytUUVBUSGhKbFBy?= =?utf-8?B?RHRhcG1kWjExVE9YTWRrdmFxZnQwMk1tQ3VmQitFb0h5bFh0QjF0KzNXMFVL?= =?utf-8?B?ejZmZHhDR3A3azYvVnlxRTh1aWQ0c1hxakZndEg3S28vWTgrZlc3cTRrTm81?= =?utf-8?B?cmtpY1RaN01uWWhzTEZwM2U5aG9CYVBOUjlRWFY1Q2M1ME9WbzJxRXdjOFha?= =?utf-8?B?REk2TTd6Z0l6YWEvbUdRbjJITFdpSVZObkxhN2kwZUdiampEZkZUSmVyZFNF?= =?utf-8?B?a3BmeGxwdFJrREpXOFRYMzhSN3UxV2ovN2tkYk9mWFRUQUQ0cFo0T3hFN1lR?= =?utf-8?B?U2hOSHVBWk4vYllZd0VqclNrV21XYlIxcWI4WThXMXhPZFRYWXpQR2t2Nkg1?= =?utf-8?B?L2ZraGswWm5VR24vTU90enNXc0hjOHV3eGU0eEFCc2d4YTlOdUZGb1A5ZGNL?= =?utf-8?B?aDBTazgzZUVYUmdNR3lNR0NFMUVnOS8zd2p2MWVQNG9vMVozZ3pjTE1ob2M4?= =?utf-8?B?a2o5Y05zd2o2T1Q4bzU3Q25tZEpkbk5wSmNVWGdoMkFoWTQ4VEdaVVJTOHZ0?= =?utf-8?B?dDgwQm0wTVUyN0QwWWwxeldyemdpZjMvQmx2a2RHd3luam5YSHZJNHlVaFRC?= =?utf-8?Q?iZKf3X38kOSgk5UqIBlBrlUPekKrnEvdmASYCf?= X-Forefront-PRVS: 0351D213B3 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39410400002)(39860400002)(39450400003)(39840400002)(39400400002)(39850400002)(4001350100001)(42186005)(110136004)(2950100002)(6506006)(6666003)(103116003)(38730400002)(189998001)(86362001)(97746001)(55016002)(54906002)(5660300001)(7406005)(305945005)(81166006)(7416002)(8676002)(53936002)(4326008)(9686003)(7736002)(83506001)(478600001)(72206003)(2906002)(66066001)(23676002)(25786009)(54356999)(76176999)(47776003)(53416004)(50986999)(50466002)(33646002)(1076002)(6116002)(3846002)(230700001)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR12MB1150; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTUwOzIzOmVOaGN3OXJhc3l5T0dHa25OemtSU2c3THZD?= =?utf-8?B?TFFsNHRJSisrbUE3LzRUZkZNU2Z1Tm5TOGVLV0orQXdzaCtkVXFBQ1ZQS1dD?= =?utf-8?B?TXJpa1hFZ3JHUEIwR1BWM294OGZ6NE1HL29KK3ROTXl1MzBDc3l3SkZvMVc4?= =?utf-8?B?UnhBbFNMWktRbllGTWprNE9ZNFplRXhtejBMUXE1bGZaT0NRNml0VGgzRlRE?= =?utf-8?B?NzFXa2RYUVYySEhsam1qbThPWEtWQ2xESzI3eHVndDRnTzdpandRSEdWWEZJ?= =?utf-8?B?WGp6SWwvbWJPWnN2WTNCZnlyTTlnYTZJSW1oWEdsdjB6enhNZ1ppbVJRaXcx?= =?utf-8?B?d1NiQ052U3VkbkR3MmIvMHJSR2tDck5KUlNDN2pqMnFDT2ZBcE5WanRqZHNY?= =?utf-8?B?blpnaHEvckFYV1ZBSi9RNEJsejVHa0JCNGcrNnhrd2E0T21Jc1FDcktJOVFy?= =?utf-8?B?cUpBdThjVE1WRzVQMEdHQVlUUnBhZU81Vm5INjBzZ2Q3SUwwUWtWYlJyMUFt?= =?utf-8?B?QllDS0hmbGpqZXhCNlhsY2ZIUnhMUWdISGRVcUhBY1FHS2w4czVWWS9kM3JU?= =?utf-8?B?TVc3aE9VVzVZSmQzRUNKOWpsMVd6RnZwUTJzOHBDWWVYa0JycDFRUENhVENE?= =?utf-8?B?Uk5KY3FPeDNuUFlvQTlLSVVETWxmQ1p2ejRMbkV5emJVUEtUdGM2OHA0U0pN?= =?utf-8?B?L1NVanlUREN0RHcrRnZVR1ZzUCtNc25LRkFkRmp3Qmo0cll4RkxSNVVmc1N6?= =?utf-8?B?SXd5ZXhCNG9lWUF0N0dzNUJqK0hnSzJBUzBoZDRJTkthY3pyTm9wU3FTSjUy?= =?utf-8?B?a3hyR2RiSUtqeTEyU0xaSGJ0MGpnV1hMaDNvN3BOMDZ4T25HcUJuQ1k4d1JJ?= =?utf-8?B?RWZ0cU5MdE9oc2xhUHlQNUJEL0R1cXg1aXVoN0pqa1ppS3dTdENRY1ZYMEFm?= =?utf-8?B?SVBlZ3Q1QVFVcXRSMnBlQnlPWmhTNGlOVUZNNVc4UlFOUGc3V2g2Vk5GUFAx?= =?utf-8?B?SzE3R2R0aTVuSnh2QmZmaDdaYkM3dmFrZ1BFVkNCVHRnd1NUd1puSWlsNTlU?= =?utf-8?B?c0wxeDlMYlljdldELzJoaE1GVVQ4Nm5kQTgvUWR3QmV5NFRwNHhUeHV2dUQ4?= =?utf-8?B?ZTI4anFSWm03TmFhWEFicXNRMDliQlBtTUFxWFpxRFloOUl2V29YSlFFcDc5?= =?utf-8?B?ZTI1eXloSzNTVVBkYU1ZT284eC9tQU95SWduNkpPejVNY0Z2U1NEU0tnNGRv?= =?utf-8?B?eEhXbkFWZU9XR0F0Z0Zpdkw0VXc5VjJQUWFHZGVpNGY2a3NtcGp5RGl5bkFY?= =?utf-8?B?TGxRMkVSYUhFdUxpSXkyZU95Uk9HUmdHL1N5UVFOQklSSmI2WE9haHZFRVhs?= =?utf-8?B?UEhVL0ViY2w3V0k1eWpaU3FzV1RwenkvUGJsSFJjMlcrU1BJT3F0Sm44dytB?= =?utf-8?B?WlIwZmhQV2lkbG80NzBzeStRNS9aWVR3Sms1V3JGdlN1Z2xla2Z3NGVqRmFZ?= =?utf-8?B?RlV4MXNqblEzNEhpRlFxWEZNeWRKM2pJSU5yUHFpelFpcjFFcGFLRnd2SlJN?= =?utf-8?B?ZE9tdmZTYUVDSE1hZGZBaWQraHBNTlkwa3FvL1NWRVFkRnQ5SytIb3UxR2Y0?= =?utf-8?B?Vk1DZmxFMGZjeTJ5ZGJuOVJiSXlLSWM3cjNhNWlyWjZDeEJueVN1VzJoL3o3?= =?utf-8?Q?CYk6cunMcHT204L5J4=3D?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjEyTUIxMTUwOzY6N29nTEJVNHphRllGWjR4aitUa0NIWThaNWdL?= =?utf-8?B?dWJIOGZReGxsczZJTElZWlp5aVVqNVU4SGIybVlYbjRQYjQxQUwyMkplcnYv?= =?utf-8?B?V25IeTlPdy9BZHM5dUlndWpkZWhBVDkvSldTWmNoc0p0NElzMnpQRmRYNzF0?= =?utf-8?B?ZS9FbmF0ejh3S0ljS0JnK2Y0RDlGM08vOFlBL3lqYXMvaEpiZCtoUmFialoy?= =?utf-8?B?VVM4d09xaTBUQ1hJZ0VYVHZER3BEb2JWM3E1M1FvTDdwY2x6bkxBOTl0Rkhn?= =?utf-8?B?anhoWFQ1TDMzUW1OOFl4bllhMU0wVk92VjhSV3BrU0wxUk4yaFpsbmxMa1hF?= =?utf-8?B?VHM1NHR2NlZaZEtVbm1JR0pwQkp6bmppQTdCWVI0NjVEZjhxeUtIVGNvdTlM?= =?utf-8?B?RE9GNGNWM2FWVzZLNVVMODJ2WXBZM2d2WlJVZDBCNGhLV0hLNFRSS3gydnZN?= =?utf-8?B?YmFhSkJ3SmEzQTRzNHBWVlNLejVqcEFSWW1FMzlwb0xwblREV2twUzBVbUN2?= =?utf-8?B?aEU2Y25kOFFoZkRWbURBSWxUZlFObzF1U1BqZ0FBc1NDK1BvOW1XQ2RScStW?= =?utf-8?B?OVdWQnZGQTFjamo1aWlwdWd1L1FmSlR5UUxyY0lybi9uaTR5VWNubmRNa3Nk?= =?utf-8?B?VWN3dHBOcUppQndSZVNDQU14U2s3ODgwTUxCeVZJWmFPSVB0UFZINjlyRkZD?= =?utf-8?B?OWIveEFxUjY5UmFnSGVQUDZnbHlPaFVmbk1UcHRibklGOHdFazdzM0dKY3hv?= =?utf-8?B?Z1FPdVBaT3hGRkNka1NxRG9jS1lkOTA5VFN0dnA5YVp4STE3b3hqb2Robytt?= =?utf-8?B?dUJhYm5SZkJkbFBBL242dVd4Wm1mWFJVdDNtcVp4MktQYWpOOFplbjdsVUFC?= =?utf-8?B?RU8zc3FVTWVUWERwR3NxVXRrK3BlclBUZDY5QjJ2MnR3dUVVdnpZcExmdDdV?= =?utf-8?B?UlBRVG5UdEZGRkM4bHAwSFEzbmtVV2pqbWhPZDRUR0hTVzZwNXZCUm5xTlR1?= =?utf-8?B?ZnhhRmtobFdYYXg3dnlHTEFjbVlkK0k3SnFqZHJnb1NkQW84OWd1Yks4TGNh?= =?utf-8?B?YmxRMi8zby9OWEFHY0xrVUNZaVlqblNObWxHMGs0dmRJWGM0dTk1R3hZWTh3?= =?utf-8?B?dklZd1Z5dGtGaFBHbEQvVFRmM1FuSjZyZFRMOEF2bXlMS1JRTjBrM1htcWV1?= =?utf-8?B?cld5a0c1Tmp2cWRNTlp3cjh0Z292MVEyUEMwZG0zcThiVHN5b1c1Y3UwT0do?= =?utf-8?B?dGIzZUNKcW84aDRSNzg4WlVXbWlCWWkvRWhOaWowWkY2T1NJMTRPWWp5Yjd5?= =?utf-8?B?bUR0V2syRVlHcTl1TWthYk9qVXl1a1pXbWkyVmFoV0ZIbWduQjVGV0hJeDRR?= =?utf-8?Q?KyJ8mCy?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1150; 5:rq2whdZbwjYlmvTJS3dr0pG7dRs+kh3QiR70XMbh0nc9UZebExK4itll0HDmZr8yIaYA1mCKY7q2xY/c3mBqbcl/q4IDiSeU4UHwZvzET6lmtvXzL+mzed/OgSumQR/Bh70Sebwmt6F8p9sOX/VTPSYaheN0bDihvfWttKL7MCOQ1ooHJBqV44XO7NeqJuBCrV+pd2jzwR1zhBJ2Jawsv1t4Pwsr8kMhBKqFKV4yEqjWCp7yTj4iveacx+P4ORo3W/kfNjTeHbjI4NMeZkzq0bvSyIRB8LvqHb5/WClVLCfRL3TzGFzYpfAr+DSda/JQOWCDAEJ//Jh/nfIItSFYri4q15O8jjVLTtWVK2iG4fSu/AOE9I3aYCwHcvY4EKP396r3oRcLDm5SKlUduwn2Jm4MRUQpE9GG7zt0oXoYR0Y5NVrqjGog/7sUA+En0WAlvdjfaanWj4XkgmtLQ5QTAmp5YLEfdlyUWmybniGh0DQ+WPwbqJ4UEQu3dKS1bjbR; 24:O96mlwzWNkMTyAgf6Pqz2VNu+I2z42yL6/CRxvexywDC9yVGBKfSTGvaFaypSKo33sWZPJddS+bJcmv/o8Vd5Gc4FtoSxDwnxenAX47YZiQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1150; 7:bkgtajEg6B8Abs7uHoyjdpwesaNpalmSSaSVD0LmRkf3AmLAxShHx757Riw5isvk+KjJqQ4XmqD/hibkkAnR8uQiPT7H/9HZu94IRYdkMNpRWnK8GTQ28HCRkrQnvsNn1Q08ob7uIiUTLCT0fr0T+HK5y4LfhgRiyDiSr1H6CjGoll+mQYRDfSOTSpYm9+4ow+B+No+deOCmgmOtR/TpkwN1iyiFCD+rsQquf/7SlPpmJ3tsjQ3FGF6EGfDHAmhFyTEQDkj30IiIKVANsfXw4OLPCz0SLcWsLKSSRA3LAfWyFOYakQVG91E+fYL0E6qvUSaZ83BntrFNvgQIVA6sAJb59jJKjEAzkbb32uAZkQQaQRC/N2gwOUFuJIE5rtuqrQ75VPGl+qobNmJZhuO681YLO9UcHVIwPHkmE9NCUPCTfjh5xVbuahjZKjRNdNGQSyjD7lfeIKlAoQXkZZ30NgQTaXA8qSXo6ZxqRFCdrfpiLhCzBjE0QJVkmbLMr4p5cH7f354bqdUWwNvjtTDcSMXoMuI0eIw7BsTiCvhqMA4QP3JxudaO42pWjrT3Y45CJVbrh+BVRaXc2yh78eRtN+5WOErCpSZ8dmjdXqwVqBMDRBrSgLRSX1gjeX+JQUtFCmK30WXc6Ts1+Hb3qFgAnBC8m1TVyBrZVm7Ti/gkp+v2g5+Iw9Pm1310Fu+D7cOfty9jCovPocl2ze7zRZqA2TfeFyUe8FwPp02rgh0c53XbWUUseoyvPAnv+4I/uQlyBrnjNimYiIjJ8FaW5KHOqBS4hBkUdZrTrE+4OGdFJBw= X-Microsoft-Exchange-Diagnostics: 1; MWHPR12MB1150; 20:uu9sWiVI/Ov8r6uA3FePGHPls/bxJlPi0x+YMuDYK8sRjQplgp+wTsuE2BxzemiqGo5JsYQ8SznMfC654rK1PFH0zKM7ZJ+4u6GEICVwVaQIjoM7ZutTI8Nt8HEawXEjnEXRdPiF0rQG9jTKOjb3/PlA2gCtP9EeZbC4NyWiV1Ob8ZtTo6H9cUVsF2Tx60P3l5tEfeUxObJp5Hds0ySn9JipFlguvbTNMkPA+e4Y2wbthrXtLUXowR+lIeiD70mv X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2017 15:07:55.2370 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR12MB1150 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 v8 RESEND 03/38] x86, mpparse, x86/acpi, x86/PCI, x86/dmi, SFI: Use memremap for RAM mappings 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 The ioremap() function is intended for mapping MMIO. For RAM, the memremap() function should be used. Convert calls from ioremap() to memremap() when re-mapping RAM. This will be used later by SME to control how the encryption mask is applied to memory mappings, with certain memory locations being mapped decrypted vs encrypted. Reviewed-by: Borislav Petkov Signed-off-by: Tom Lendacky --- arch/x86/include/asm/dmi.h | 8 ++++---- arch/x86/kernel/acpi/boot.c | 6 +++--- arch/x86/kernel/kdebugfs.c | 34 +++++++++++----------------------- arch/x86/kernel/ksysfs.c | 28 ++++++++++++++-------------- arch/x86/kernel/mpparse.c | 10 +++++----- arch/x86/pci/common.c | 4 ++-- drivers/firmware/dmi-sysfs.c | 5 +++-- drivers/firmware/pcdp.c | 4 ++-- drivers/sfi/sfi_core.c | 22 +++++++++++----------- 9 files changed, 55 insertions(+), 66 deletions(-) diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h index 3c69fed..a8e15b0 100644 --- a/arch/x86/include/asm/dmi.h +++ b/arch/x86/include/asm/dmi.h @@ -13,9 +13,9 @@ static __always_inline __init void *dmi_alloc(unsigned len) } /* Use early IO mappings for DMI because it's initialized early */ -#define dmi_early_remap early_ioremap -#define dmi_early_unmap early_iounmap -#define dmi_remap ioremap_cache -#define dmi_unmap iounmap +#define dmi_early_remap early_memremap +#define dmi_early_unmap early_memunmap +#define dmi_remap(_x, _l) memremap(_x, _l, MEMREMAP_WB) +#define dmi_unmap(_x) memunmap(_x) #endif /* _ASM_X86_DMI_H */ diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 6bb6806..850160a 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c @@ -115,7 +115,7 @@ #define ACPI_INVALID_GSI INT_MIN /* - * This is just a simple wrapper around early_ioremap(), + * This is just a simple wrapper around early_memremap(), * with sanity checks for phys == 0 and size == 0. */ char *__init __acpi_map_table(unsigned long phys, unsigned long size) @@ -124,7 +124,7 @@ char *__init __acpi_map_table(unsigned long phys, unsigned long size) if (!phys || !size) return NULL; - return early_ioremap(phys, size); + return early_memremap(phys, size); } void __init __acpi_unmap_table(char *map, unsigned long size) @@ -132,7 +132,7 @@ void __init __acpi_unmap_table(char *map, unsigned long size) if (!map || !size) return; - early_iounmap(map, size); + early_memunmap(map, size); } #ifdef CONFIG_X86_LOCAL_APIC diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c index 38b6458..fd6f8fb 100644 --- a/arch/x86/kernel/kdebugfs.c +++ b/arch/x86/kernel/kdebugfs.c @@ -33,7 +33,6 @@ static ssize_t setup_data_read(struct file *file, char __user *user_buf, struct setup_data_node *node = file->private_data; unsigned long remain; loff_t pos = *ppos; - struct page *pg; void *p; u64 pa; @@ -47,18 +46,13 @@ static ssize_t setup_data_read(struct file *file, char __user *user_buf, count = node->len - pos; pa = node->paddr + sizeof(struct setup_data) + pos; - pg = pfn_to_page((pa + count - 1) >> PAGE_SHIFT); - if (PageHighMem(pg)) { - p = ioremap_cache(pa, count); - if (!p) - return -ENXIO; - } else - p = __va(pa); + p = memremap(pa, count, MEMREMAP_WB); + if (!p) + return -ENOMEM; remain = copy_to_user(user_buf, p, count); - if (PageHighMem(pg)) - iounmap(p); + memunmap(p); if (remain) return -EFAULT; @@ -109,7 +103,6 @@ static int __init create_setup_data_nodes(struct dentry *parent) struct setup_data *data; int error; struct dentry *d; - struct page *pg; u64 pa_data; int no = 0; @@ -126,16 +119,12 @@ static int __init create_setup_data_nodes(struct dentry *parent) goto err_dir; } - pg = pfn_to_page((pa_data+sizeof(*data)-1) >> PAGE_SHIFT); - if (PageHighMem(pg)) { - data = ioremap_cache(pa_data, sizeof(*data)); - if (!data) { - kfree(node); - error = -ENXIO; - goto err_dir; - } - } else - data = __va(pa_data); + data = memremap(pa_data, sizeof(*data), MEMREMAP_WB); + if (!data) { + kfree(node); + error = -ENOMEM; + goto err_dir; + } node->paddr = pa_data; node->type = data->type; @@ -143,8 +132,7 @@ static int __init create_setup_data_nodes(struct dentry *parent) error = create_setup_data_node(d, no, node); pa_data = data->next; - if (PageHighMem(pg)) - iounmap(data); + memunmap(data); if (error) goto err_dir; no++; diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c index 4afc67f..ee51db9 100644 --- a/arch/x86/kernel/ksysfs.c +++ b/arch/x86/kernel/ksysfs.c @@ -16,8 +16,8 @@ #include #include #include +#include -#include #include static ssize_t version_show(struct kobject *kobj, @@ -79,12 +79,12 @@ static int get_setup_data_paddr(int nr, u64 *paddr) *paddr = pa_data; return 0; } - data = ioremap_cache(pa_data, sizeof(*data)); + data = memremap(pa_data, sizeof(*data), MEMREMAP_WB); if (!data) return -ENOMEM; pa_data = data->next; - iounmap(data); + memunmap(data); i++; } return -EINVAL; @@ -97,17 +97,17 @@ static int __init get_setup_data_size(int nr, size_t *size) u64 pa_data = boot_params.hdr.setup_data; while (pa_data) { - data = ioremap_cache(pa_data, sizeof(*data)); + data = memremap(pa_data, sizeof(*data), MEMREMAP_WB); if (!data) return -ENOMEM; if (nr == i) { *size = data->len; - iounmap(data); + memunmap(data); return 0; } pa_data = data->next; - iounmap(data); + memunmap(data); i++; } return -EINVAL; @@ -127,12 +127,12 @@ static ssize_t type_show(struct kobject *kobj, ret = get_setup_data_paddr(nr, &paddr); if (ret) return ret; - data = ioremap_cache(paddr, sizeof(*data)); + data = memremap(paddr, sizeof(*data), MEMREMAP_WB); if (!data) return -ENOMEM; ret = sprintf(buf, "0x%x\n", data->type); - iounmap(data); + memunmap(data); return ret; } @@ -154,7 +154,7 @@ static ssize_t setup_data_data_read(struct file *fp, ret = get_setup_data_paddr(nr, &paddr); if (ret) return ret; - data = ioremap_cache(paddr, sizeof(*data)); + data = memremap(paddr, sizeof(*data), MEMREMAP_WB); if (!data) return -ENOMEM; @@ -170,15 +170,15 @@ static ssize_t setup_data_data_read(struct file *fp, goto out; ret = count; - p = ioremap_cache(paddr + sizeof(*data), data->len); + p = memremap(paddr + sizeof(*data), data->len, MEMREMAP_WB); if (!p) { ret = -ENOMEM; goto out; } memcpy(buf, p + off, count); - iounmap(p); + memunmap(p); out: - iounmap(data); + memunmap(data); return ret; } @@ -250,13 +250,13 @@ static int __init get_setup_data_total_num(u64 pa_data, int *nr) *nr = 0; while (pa_data) { *nr += 1; - data = ioremap_cache(pa_data, sizeof(*data)); + data = memremap(pa_data, sizeof(*data), MEMREMAP_WB); if (!data) { ret = -ENOMEM; goto out; } pa_data = data->next; - iounmap(data); + memunmap(data); } out: diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 0d904d7..fd37f39 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c @@ -436,9 +436,9 @@ static unsigned long __init get_mpc_size(unsigned long physptr) struct mpc_table *mpc; unsigned long size; - mpc = early_ioremap(physptr, PAGE_SIZE); + mpc = early_memremap(physptr, PAGE_SIZE); size = mpc->length; - early_iounmap(mpc, PAGE_SIZE); + early_memunmap(mpc, PAGE_SIZE); apic_printk(APIC_VERBOSE, " mpc: %lx-%lx\n", physptr, physptr + size); return size; @@ -450,7 +450,7 @@ static int __init check_physptr(struct mpf_intel *mpf, unsigned int early) unsigned long size; size = get_mpc_size(mpf->physptr); - mpc = early_ioremap(mpf->physptr, size); + mpc = early_memremap(mpf->physptr, size); /* * Read the physical hardware table. Anything here will * override the defaults. @@ -461,10 +461,10 @@ static int __init check_physptr(struct mpf_intel *mpf, unsigned int early) #endif pr_err("BIOS bug, MP table errors detected!...\n"); pr_cont("... disabling SMP support. (tell your hw vendor)\n"); - early_iounmap(mpc, size); + early_memunmap(mpc, size); return -1; } - early_iounmap(mpc, size); + early_memunmap(mpc, size); if (early) return -1; diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 190e718..08cf71c 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c @@ -691,7 +691,7 @@ int pcibios_add_device(struct pci_dev *dev) pa_data = boot_params.hdr.setup_data; while (pa_data) { - data = ioremap(pa_data, sizeof(*rom)); + data = memremap(pa_data, sizeof(*rom), MEMREMAP_WB); if (!data) return -ENOMEM; @@ -710,7 +710,7 @@ int pcibios_add_device(struct pci_dev *dev) } } pa_data = data->next; - iounmap(data); + memunmap(data); } set_dma_domain_ops(dev); set_dev_domain_options(dev); diff --git a/drivers/firmware/dmi-sysfs.c b/drivers/firmware/dmi-sysfs.c index ef76e5e..d5de6ee 100644 --- a/drivers/firmware/dmi-sysfs.c +++ b/drivers/firmware/dmi-sysfs.c @@ -25,6 +25,7 @@ #include #include #include +#include #define MAX_ENTRY_TYPE 255 /* Most of these aren't used, but we consider the top entry type is only 8 bits */ @@ -380,7 +381,7 @@ static ssize_t dmi_sel_raw_read_phys32(struct dmi_sysfs_entry *entry, u8 __iomem *mapped; ssize_t wrote = 0; - mapped = ioremap(sel->access_method_address, sel->area_length); + mapped = dmi_remap(sel->access_method_address, sel->area_length); if (!mapped) return -EIO; @@ -390,7 +391,7 @@ static ssize_t dmi_sel_raw_read_phys32(struct dmi_sysfs_entry *entry, wrote++; } - iounmap(mapped); + dmi_unmap(mapped); return wrote; } diff --git a/drivers/firmware/pcdp.c b/drivers/firmware/pcdp.c index 75273a25..e83d6ae 100644 --- a/drivers/firmware/pcdp.c +++ b/drivers/firmware/pcdp.c @@ -95,7 +95,7 @@ if (efi.hcdp == EFI_INVALID_TABLE_ADDR) return -ENODEV; - pcdp = early_ioremap(efi.hcdp, 4096); + pcdp = early_memremap(efi.hcdp, 4096); printk(KERN_INFO "PCDP: v%d at 0x%lx\n", pcdp->rev, efi.hcdp); if (strstr(cmdline, "console=hcdp")) { @@ -131,6 +131,6 @@ } out: - early_iounmap(pcdp, 4096); + early_memunmap(pcdp, 4096); return rc; } diff --git a/drivers/sfi/sfi_core.c b/drivers/sfi/sfi_core.c index 296db7a..d5ce534 100644 --- a/drivers/sfi/sfi_core.c +++ b/drivers/sfi/sfi_core.c @@ -86,13 +86,13 @@ /* * FW creates and saves the SFI tables in memory. When these tables get * used, they may need to be mapped to virtual address space, and the mapping - * can happen before or after the ioremap() is ready, so a flag is needed + * can happen before or after the memremap() is ready, so a flag is needed * to indicating this */ -static u32 sfi_use_ioremap __read_mostly; +static u32 sfi_use_memremap __read_mostly; /* - * sfi_un/map_memory calls early_ioremap/iounmap which is a __init function + * sfi_un/map_memory calls early_memremap/memunmap which is a __init function * and introduces section mismatch. So use __ref to make it calm. */ static void __iomem * __ref sfi_map_memory(u64 phys, u32 size) @@ -100,10 +100,10 @@ static void __iomem * __ref sfi_map_memory(u64 phys, u32 size) if (!phys || !size) return NULL; - if (sfi_use_ioremap) - return ioremap_cache(phys, size); + if (sfi_use_memremap) + return memremap(phys, size, MEMREMAP_WB); else - return early_ioremap(phys, size); + return early_memremap(phys, size); } static void __ref sfi_unmap_memory(void __iomem *virt, u32 size) @@ -111,10 +111,10 @@ static void __ref sfi_unmap_memory(void __iomem *virt, u32 size) if (!virt || !size) return; - if (sfi_use_ioremap) - iounmap(virt); + if (sfi_use_memremap) + memunmap(virt); else - early_iounmap(virt, size); + early_memunmap(virt, size); } static void sfi_print_table_header(unsigned long long pa, @@ -507,8 +507,8 @@ void __init sfi_init_late(void) length = syst_va->header.len; sfi_unmap_memory(syst_va, sizeof(struct sfi_table_simple)); - /* Use ioremap now after it is ready */ - sfi_use_ioremap = 1; + /* Use memremap now after it is ready */ + sfi_use_memremap = 1; syst_va = sfi_map_memory(syst_pa, length); sfi_acpi_init();