From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932590AbdBPPrm (ORCPT ); Thu, 16 Feb 2017 10:47:42 -0500 Received: from mail-by2nam01on0051.outbound.protection.outlook.com ([104.47.34.51]:34058 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932442AbdBPPre (ORCPT ); Thu, 16 Feb 2017 10:47:34 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; From: Tom Lendacky Subject: [RFC PATCH v4 24/28] x86: Access the setup data through debugfs decrypted To: , , , , , , , , CC: Rik van Riel , Radim =?utf-8?b?S3LEjW3DocWZ?= , Toshimitsu Kani , Arnd Bergmann , Jonathan Corbet , Matt Fleming , "Michael S. Tsirkin" , Joerg Roedel , Konrad Rzeszutek Wilk , Paolo Bonzini , Brijesh Singh , Ingo Molnar , Alexander Potapenko , Andy Lutomirski , "H. Peter Anvin" , Borislav Petkov , Andrey Ryabinin , Thomas Gleixner , Larry Woodman , Dmitry Vyukov Date: Thu, 16 Feb 2017 09:47:24 -0600 Message-ID: <20170216154724.19244.71396.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> References: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR10CA0005.namprd10.prod.outlook.com (10.172.48.15) To CY4PR12MB1142.namprd12.prod.outlook.com (10.168.163.150) X-MS-Office365-Filtering-Correlation-Id: 2b11e86e-7e6c-42b6-6365-08d456831d7a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;3:N2kMGE+5FkDdXd0kXeyFNsWGoN5/99WhtoInt3AP2t2wzK/AUIK8PP+rXWbgGvpN7JtdRose7zen495MuDOp0+dwKuI48LkXTKncQnI9MACUWAHifU1V9YYBtE+PHZ+Vrnt52RnJ0BKeObwdSeHpL1Q8rN9ccOGGbUzu2MkKIVMaTa7XhOrItd5XknMPWMlkROg/7t+G2TAdJe3iMHotCZb7P/z25nkwiLlqrNaO2hdGR8G6dPsiQkC45C5l+hxGBNXXhB092PjeLuB+1rFsNRZx/3EVfiSDpi/IxlMrmiY=;25:W5K894cv4gIIk9rNgwMvOdbB1dI0zdNfe1IgenjHUBbCF3d8ahmFfG5qz6RJ6AlCTQPQdPh964D2McNtUO/B2Orztay94DWHE0Tf6TVRYJW9p2mceZqFxwbfuDLCozyMX3A8PQ4kARMMVFNEQfqbNh+MSD9fRK+VAg6t7UDiqmsqsCy6SjNi/l+HvFtVmM5pe3UOZWJFJoi+P44WmjTrfNbfe/qJGzeiHl0El6VspobhjXCWeKFSYXH/DXYZZ7YF11M4c6A5LS2JJuLowciFYjcRBeizbUCcylgKiMnh4AGakUz9ETe4YRW3jIN6S/U/+W7XgQv4NB56pTzUi/qC4KZJdLC0aOHo0dwDIuRJWwmRVwCe6GimeHASQNj/OM6rjIMMuIbrZDa0jQuIkcB58X/fNwzMCnhd1dq2ZZ/MmUSec7uqdQIBfzoUhRuwSBALQAv1EY9S4xb9Gx2o6sI4GQ== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;31:VxeQO+WbSTCma6qZRO6yFTW7NKRCIPzcPJt3nPWMAm6Hmkrw2BVV+lnq9FlRPApgOOn3nJpZn9k9L90bgWAGA41reBKJwyeAftZrunPx6NIMiXU6210VgCPCg4u8IXT57M5ngYY5eGaufOk+Qs1gKGLXm9p4Bze8J3ySvOap9go4fGpeJAFzR2hVeQOztxWsxlEj6bgR6lp22gAFCsS7U0MSkJ9mmo4PgeTkdNKWYtXsTRnFbB7vIThOdtdumxha;20:rQBpRJkch1HZ7wCMmlamkJIM6IAwext/HKAczpo5/Wy8aMt/k5XZy4epVamBTsgf+Y8xluRO6rFyh2L+9q21CzSeEA46bID/3F6GXaNBfah/jlTSOANy/q3luA5jfqG538s71i4sgeKUaR0bG+fQCrtpB7OQ91ZP4z87LnGXcJwJI1VS4c+19FU1ru0J8OPCYFxlCBZih1fzE+qkZH9cXk9vseTUNov9LZmh6gHEpMZURGDTxXYc8Nizfp2JzOR+yGsfxhFkEz4OPi1rTYPshQv995+s98Z6GEWjT3K+9DePCDSDNAGiRo/X+9Sm+eSXa8/FTF4ZKjUHgEnWUdH5AT7/1MojS+veH6EcIrJrIzGSHsgQPZNfP82tl0GtJcRam2r/T1+H/1PFrgkbQ1pvbo95f2ZxK4xidVkfYTViTVSUKfTf3BTlIrP+8dwBsTOFFV+xx/KfO2xJESIioyky4c3o4Sv8mbOiZ0CnoX226mbPSrFS0s6JQa73wlWRsE3N X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123562025)(20161123558025)(20161123560025)(20161123564025)(6072148);SRVR:CY4PR12MB1142;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1142; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;4:/iUnWFVRYrZCoaPQaLfCObqLsan5gU5l26Kxl+LUG5N5a9QusgBsndHqz2fpDLiDwMqzyH2sLEJmcJVynzbCRfvv/ypNSPaKzyW+2HRyBJUCskdal9im081u24WZjfKF6SryE8YPEIFvllTr0Hx8Jbd+LJdlhdGqMaanP+HwGCtE3zsMO3o0wMaqtm35PRF1OM0uRkRANrPZwyyZX09QqIBPMXouv0wHJkMldm+fzm0Lu6gtBQwbbkc619f2DRKtuJhSpyiQc6UX1sHkNIuEugOBBKhnLvfaeEy0yhOMuqGQFgvDfS/GfsdSnjmcvUNuHXeS0Ne0T88O416VNRCdARUyfRE1SW3Fa/14ftkb53r1P4gZgj+6UGuU1Kr4K/lGFKmL12zVww1JfIrJv2ZRpNev87IpcgvUgcwPCYwDBuQc0jlOjN8ShqvuYMfwsBt51ljZzpl89fZfeELQmPBSUjvUVFBBEORkbxdHb3EKE5NSD+sU4uR744I9oMOGQDTvMS51S/ljM7vpSlATV2bLnoiEENE+QqFKfirFhoXOsRgec4vqnmRmtkia7fMEdzlyzbiFgFq6xzYxNHo+tMEiAl5fTVNzoqEjuKf6HdnlnUlIIKiKdqjIsLsYr4rpOz4ONHFV0IVDOst7eGQJdMmMkdRr6aq5oKrUR/SZna29Elw= X-Forefront-PRVS: 0220D4B98D X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(39840400002)(39850400002)(39450400003)(39860400002)(39410400002)(199003)(189002)(97746001)(23676002)(105586002)(101416001)(106356001)(4326007)(25786008)(33646002)(92566002)(50466002)(6506006)(1076002)(66066001)(2906002)(53416004)(42186005)(47776003)(68736007)(103116003)(76176999)(2201001)(3846002)(6116002)(50986999)(7416002)(6666003)(2950100002)(97736004)(4001350100001)(69596002)(83506001)(8676002)(230700001)(305945005)(86362001)(81156014)(189998001)(81166006)(5660300001)(38730400002)(9686003)(54906002)(7736002)(389900003)(55016002)(54356999)(53936002)(71626007)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1142;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQyOzIzOmRWeC9GRVpQcStsVytJSDZBKzdCT3ZlZXd5?= =?utf-8?B?ZE53K2xEZ3BFbkV0cGh5b1FTOTVsN1YydFFDNnc0YlZIVUVuSHkrSk1uaW52?= =?utf-8?B?dHdGN3QvWDRWaUVDN1lObGJ0SEtzdnhlSFF3dW5SeVZieDVrN2ZNaUlxSzcr?= =?utf-8?B?K3FVMVdKY2M5RWlpUWM1Wi80eHFwdFVYQkdEU0hHN1k4OG1HS0xBZEJSb3Jy?= =?utf-8?B?Q1kwekJBSFdWMU9tWTBRLzNOVXVKaGRybWFvUTZPVDlsOTVJZGd4WDBwODFz?= =?utf-8?B?RkxyaVpwR09HNkRKcWtHanBXTFBMQWRNbjdiTmZNUnpDOXk2ZnVkTkI1c0Yx?= =?utf-8?B?aVdIajg0bGRwZFZpNkhhUk1HYm9ZUjZQdEMyUTZkRjlvRHRMcjZFR2JaRy9o?= =?utf-8?B?bU42WlVHUDdyYzFxOEJXRk90T0ZRb09vMjBHcVFzb1V2Q0F5THVrcWNpalk3?= =?utf-8?B?cmhSUDU5TU01SnNEK0VkNmFKbHdaemJuNE05d3pTRGNLMVpxSGNvQUcxYmg1?= =?utf-8?B?SytQdkw4V0lNbUlJcEY4QzhGK0lFOVNDM0JKRjFiQkhLSnUyazBNZ2ZDOGZ2?= =?utf-8?B?QU1FRllBdHJQQzRVNTlMNVVtOTZxRnhjVXZaUTVKVk51cUZXcTl0MkpWV3pT?= =?utf-8?B?MHJkQUEwWUZ3UWdnNDQzQW03ZkZJa2Q5RHprWU1RaFR1STdFcldBaDZqMFMw?= =?utf-8?B?aUV1bGl3SzhBY09ReG9GUGtKbE14aXZuc2k1VlkyYkRyaDRGY2tvU2FhSHE5?= =?utf-8?B?bGdiWWZNNVh6a0V2Smh2SHlxeDNVemNJVVNJVlZJLzVtUjQyTVU5czdVSXVy?= =?utf-8?B?MnUvc3NEb210bUJjcCtnNTNnM09vUWtOOVBpbjlWMVZZa3dEa1lZR3pkbjkx?= =?utf-8?B?MFBpSDdlMVNUbGZ1K0hubnVqeWpKMnRkNzFDcFZJMVY3YWQ0RUFLSW9LUlJP?= =?utf-8?B?RElnR3lsdnRwV3Y4MjVGSjRqbUdNL1FaVkMzamVRWFU1Q1U5b3czYWhGakhI?= =?utf-8?B?K2Fjb3ZQZFhvUnFlaTcwRzhCWGUrNVp5WVVLYjBQajd6b0d3UUVPRTlKdlpY?= =?utf-8?B?NGQ4MnRTaXpkN2hIZG5SWDhJdno3bmx3TVVnZFhMTkYxNy8yUTVZVWxGaTJv?= =?utf-8?B?RXZXT3RWaDNFUDZCMUJrMk1UOFJnazQ2c3ovN0txczZYcGtDYUEwSjBicFFS?= =?utf-8?B?YzBKQW9ReXArd2U5ajlTMVRzWDU0Q2VjU0JLRVlKWkxNTVNueVlqQmNtWVZ3?= =?utf-8?B?dnVuMEpBWndldVNvNlRraU01MkpQcXdiajZWakc0a3A4eUhzSm1DOWlBT2tX?= =?utf-8?B?enRxYmZtdlFjbEY5OSs5Wm1sSlAvbzluREt0VnI3VU5zbVdDZXk0aFA0bUVU?= =?utf-8?B?cDdQdnBEYkJDZFFpNGROMW93REZycUlON0R0Rnd1YmdxaXNBTitnNWFDL0RO?= =?utf-8?B?bmpBZWZNbDA3d28vOFNnU1ZMbWlWSG8yRG9TUW1wYUUyRm11UFpzYmJYWlZW?= =?utf-8?B?dnVwUGJwaEFWamk2K0IxaFlJL1dPeVprUjRDb3lQZ05KMk1uL0s4UkFGTXdQ?= =?utf-8?B?Ris0d21SQkxOM0JDMThwTDl4UWUyUzlWWWtZaDhwdW1hbkc2eS9Qd0Jwckh1?= =?utf-8?B?bDdsaFFuQ2VUcDROb0U0ZHJwMU9kaDZlRDBUQVpOTmpHUmZqMWJYRmxWU080?= =?utf-8?B?ZnNJWS9XeEZSSER1Q0ppZWU5Z0kzSHBuNjlwVU4vZnJ1dzhHY1Eya0pTQ1Yv?= =?utf-8?B?Nm9QYUV5MUNzL3FZY1I1enp0b0RMcG1UNkw3UHI4MXR2QWtxSzRJSXRiYmpN?= =?utf-8?B?dFo1Y3cxOXB6WkZ2MHFKTk9NRStoR3p0aTlDQkRUbk5KcVBGRGZHNG5jWjFj?= =?utf-8?B?VTRXVXRFV0JWMW1OVVYzK25wWUVFZ1Z4cGpMR1JtT0trZGJKcUZsVXlWTGpD?= =?utf-8?B?eHY2d2F0dlRBPT0=?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;6:l+oOqGxN9ohUR6BN88YJ5B5QpT+BB4fpeUKKeJZ7w47FKCJHBAy3LitbNEgwUPG2WAgQqX0EcSdnbTtHidarSLQYlnNMt1T3S9bl8MlNg0d2arMY+SEgApjxfyjuwJ/6BOiT1C1OzQ+vHgrORGo5kwTHAtmB/RP1hhaYmCaJxgaCH1YyB9ThfXObsp2RlTPq4CCArAiXVVRy8qgHTcocjKO7NaeEsv+PUOBoZzy8as/YtV0thJ8sxTap4k+rD68p0SUauscSDjSNlk6MmB5qbkatr3ROdimSG1f53srjIuZ6p7Fg+eMTPRgnDcBKEUdlV5W7V+E0PVD2li0k352LVijdiO+5bzoRn5hH5rdpU/QC6AyeX8ZbTfW/Kjg04AD1IsM4P+zYN0PgE58QAIsrpTJcdumKT2NWsgjX+xKusK8=;5:GLqy0iOgneAPBEHVzd2STv/eFr40BVmyf49grwOBHhXEQH8CW4WX7PjBz/JKPl7Vwq/kAB5ocT6duS0CtU0XGE8ZS2JMVuDcicwUhijMghdf6Hwjk2f/6rudcmrTWNSTvPAr9lODAaf49hZ23IBgAQ==;24:NvCgFDzdN5GUfLxMJYNTWN2tfsv3JIy7eBLpXXt55wpSSOHfpS/QSzSklMm+AptRhOB0YWtRX14tXuPJSM5BbnFIDV4TtGd/zg4OPknJNHY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1142;7:30z/wb73DGa387PAO4LYnDtotFRvYfRUqCOYMkEsJ/1U3b6xfw78Be0BGrlSpPg04Aguiqo3PP5ExgxgshQ2oX4Uqgavs54R8Ye+PBos68g4wjyNdgrJKGTfuxoi9emFxbRK3Gl39vigEeecoGh4wk9N/sijOe3JtqkbKwTZoZiME8LUH1TQ0uMgtFq5zsJ3gmHUSMc8QSisoB58oQ5yhtMwiDmKNInV0zZyjanzB3sjAiFPw3GBgKpnBg9NvFPHLxLMoeG6FI3WHp/TP5h2Fm25xtm7bgQcruuU4FpStBU2YVXAtHydcXvCjj3TfYDRgoAzUI3x2edJKq5qlwHTAg==;20:fWTTbUfV8oVPITL1ImQN7gnZW3sQFpJpjN6lP3QiIMyrHI8kmlcA3Ybb8YnsqSwZUDOpxDswwE3/DLSKHZR3WCJkp9cb5Dfu76J4tD50DIwZBklTXpsNjlWSi9fK0neJFv8WHKF/UW3wCmU1s2qNiVWIpMVWf0UIIIcQMy+aW+zjLS8pDHRfSfTiJGC2hX3Ch32lNls4DK33C4UjnhCzfcvK3aUkAne7wmQaMkulKTJZ6SoFsEEA46BMXLAaztdI X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2017 15:47:27.7247 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1142 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use memremap() to map the setup data. This simplifies the code and will make the appropriate decision as to whether a RAM remapping can be done or if a fallback to ioremap_cache() is needed (which includes checking PageHighMem). Signed-off-by: Tom Lendacky --- arch/x86/kernel/kdebugfs.c | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/arch/x86/kernel/kdebugfs.c b/arch/x86/kernel/kdebugfs.c index bdb83e4..c3d354d 100644 --- a/arch/x86/kernel/kdebugfs.c +++ b/arch/x86/kernel/kdebugfs.c @@ -48,17 +48,13 @@ static ssize_t setup_data_read(struct file *file, char __user *user_buf, 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 -ENXIO; remain = copy_to_user(user_buf, p, count); - if (PageHighMem(pg)) - iounmap(p); + memunmap(p); if (remain) return -EFAULT; @@ -127,15 +123,12 @@ static int __init create_setup_data_nodes(struct dentry *parent) } 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 = -ENXIO; + goto err_dir; + } node->paddr = pa_data; node->type = data->type; @@ -143,8 +136,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++;