Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751278AbdCQUaY (ORCPT ); Fri, 17 Mar 2017 16:30:24 -0400 Received: from mail-co1nam03on0067.outbound.protection.outlook.com ([104.47.40.67]:26816 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751023AbdCQUaT (ORCPT ); Fri, 17 Mar 2017 16:30:19 -0400 Authentication-Results: google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=amd.com; Subject: Re: [RFC PATCH v4 25/28] x86: Access the setup data through sysfs decrypted To: Dave Young References: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> <20170216154738.19244.37908.stgit@tlendack-t1.amdoffice.net> <20170308070934.GC11045@dhcp-128-65.nay.redhat.com> CC: , , , , , , , , , Rik van Riel , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , 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 From: Tom Lendacky Message-ID: <5e391176-9bf1-617c-0b3d-00aada2b3856@amd.com> Date: Fri, 17 Mar 2017 15:09:43 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20170308070934.GC11045@dhcp-128-65.nay.redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR14CA0012.namprd14.prod.outlook.com (10.173.227.22) To CY4PR12MB1144.namprd12.prod.outlook.com (10.168.164.136) X-MS-Office365-Filtering-Correlation-Id: 0f97c3e0-5848-495e-9157-08d46d71928a X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:CY4PR12MB1144; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;3:hjYAFpQNrty/TnmKZZDsFQBNuXW7t1W+fF18s849N8JZ88buM6A/ba+XIw1zKQmYlloUqjT2mM83ezyKtXVWXNWQNc9eiaeD28cpU31wxb1ue/BuQxk0n5fPBLr8ejJRiOR+VJqOhw7v1X9D2vvbJxb9Kh2uKMZfMJa5YMAiClr4U/4lZIb4UxM6b7B+4NnBLP3UWOcAKtCeP4Oi2eziKOh4etwMD2M7KReW8FMODwQPnIJlzahG5txMcD9K3TZc8jbF8qVA4gJYygoSpy59cTNoJt18e+95bAf0Dxzs6/s=;25:s57hgyR7uEHLARuFWpqDmjeYXPXIPCO2pL2TZZUVzk6cM2Zp6YS/tLElMzGlAQxK83vc2GLIlKqShN2gaG7Z9V5CgVb8gC9LYaK2qnC9nSHVxCk+kbn5oRL43EeKtQxG07JPSPJNFDAhMtsr6z5tvYLk4lFJEQdxM3BI5CobIJ/79W6+Zb9C9bea/Jsf+GRHx4enh19aWof3VVIk1DyoxiEGI97kqxwGjC5nRpzTeY188A0J3jgQdSfOnPKxsKFOOul5nTVwBupTM0malr5jPlFdUBPNTqTNsUnQRxUETMdGWpEiY5NrVCOgrRpOYT/7dMrTmAl3zXEraUR5QtCAQuaZ4zYgYU2FrGDpDmVSNB+GZzwx0XcL64n1WMI81218FPh6eqqBQOzeoxi+MLPMqfvjRuCgBSut1Y4iWW2Y+dx6cR8tjiXTq8QpslPhdlQHuaGhsNVHQL4rT53JTH/7/A== X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;31:WUCfluh4N4wmKijOm6uWxq7NxdFsOdKXKawZk5ez7xjGTFNBYQy2RXqUDY+U/LsCj1tgyFwqHSwOagfTD1YsOkGTWvMIY91x13gbrG5dgmX4maiXbr8Mj9R5H24vCkwkFQvWPL4+UDnnqS3idX83yKyVTw5sx4RW/X50tHzrFaLMimx39pDzpaFS7hAj0n4/kgk5D9QrSajFxVEucO0YjaDpKVHGH/K4Mor/2XDuX8E=;20:zCLvlou+dBvQKXHfvvreekTjzGyAcIlBV/TtddVIEgLYH3EFOKGaLh5Yzo/Xu8GW6gD5bpwWTpgfmomEv/a4mHSVs3SrbNrLeLP4cdSRYpwIGTQn4jps7c+RZBElX5Gb+23VWUXroJese/WmiPLWqm2fsTkmSwg0ipA0i4vQoqxDvgjffr4SewYl9h55m5L8EXC27caWW29jXbmV150v3qTxYW05FAsnrsBhBbsL2OB7vHnrabWsgwJHz6IQgYbcqELFE8WXDLalbWPwVutdbfRYKoyboChOlflM2bN8PZbI6tXqoYUA5O4jtCpxTH+P41BHT/7XG5Yix/Cp86XB1Vs4rMUpLBLRjjObblIJiwZMJBtcfrpDnW26cZLAD2mP/DPaXIuFlL+bVkGYhbghhIa5MXwqt7vCfoo0DWEcAvuXEq7W/UnXP6vBy5AEF9chHzchDPwweUcTcxaYZAnb6Q2WHVi3tpGZyqkLhgVyyhPMdy60osJCHdS+KShqRca3 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)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123558025)(20161123555025)(6072148);SRVR:CY4PR12MB1144;BCL:0;PCL:0;RULEID:;SRVR:CY4PR12MB1144; X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;4:AVUuTzALtUN7i0ICDhi3LGDs+B7fYsHEi4PMxc+IUnpGf/AVNW2az991efOzTuyjhrE3lQZQSLRpp+0L+USHktHskBEmWSb65dXjUtXzkeFPJsu0Rq10/oEoUkcFO4cdbWt6AWw28D4hAgmz9rQcLIcoV3NcYxt7PcZcrFJRhJzcy73/0Vq8KScjZ4X8RLFcYOcHrMPTQElOyYtdu4hmK4qrUz184v8jelL1i83hyDaqcj7aYw+RZvDcI9TKGEkizj+GL/kmNy610bdK/szyDXtmzEdqjF66qZD1C/Q3Y36KVmB2wjA8eJ9a+3PUxG6oTntqJ2Ny1WvFrb5lxI4k5YvLo1WoIcJtg/5wxOXWuZxz1Ns0bThDrBaBAKvP/orxU3WNoPC4GNAbuVPVaIwi8Mfcy4PT1Fdfl9IOFa/8nfAQmYkFttw8uim/tR1H8wWqTOVT2WZUe2/gPoRBRmHTlw/hIezebzW6bsZ7QAt3OZPGh+0gAr3FVjmnHm/Knmq5UvcYXOi9MI0NUw5mSP5vX1lw+utjqUvdBtQWoCnqvsu+Gbdu3zy9R/+w4E1+6C0W1Br5MsOZk5O+x/9cH7UR2mgrAYAUoczBrxzXx/Ht91zLhwGYFkUU63okCYyY/PnT2gA+CXeMxtFQXBBr16mXeFvr6Q+RZWZIrUNb8FIB5tY= X-Forefront-PRVS: 0249EFCB0B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39450400003)(39860400002)(39840400002)(39850400002)(39410400002)(377454003)(24454002)(31696002)(47776003)(2950100002)(64126003)(76176999)(54356999)(66066001)(6666003)(6916009)(86362001)(110136004)(23746002)(4326008)(33646002)(2906002)(189998001)(5660300001)(38730400002)(36756003)(6246003)(50986999)(8676002)(42186005)(50466002)(230700001)(90366009)(6486002)(7416002)(25786008)(77096006)(81166006)(305945005)(6116002)(7736002)(229853002)(54906002)(31686004)(53546008)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:CY4PR12MB1144;H:[10.224.10.65];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;CY4PR12MB1144;23:AiGmVxpUzNmRZPaM/F4HYO88kZEhFdXNb/kIr?= =?Windows-1252?Q?l7sQnxSXEg/Y5XcoH9a9QAlr3NsU/nfRJLwbLhSHLDOxRm6JU5adBjKO?= =?Windows-1252?Q?NjBIJQGzd3uG+Y9QM7BaUcwv5JSTmOFAk3EQsSSj+0cXNxPTssPsWWBc?= =?Windows-1252?Q?v5Yhxn66W8XVg7cyKC7uOX0nz15NbNTmsYozE5vhjoavlsHc7hJuucz9?= =?Windows-1252?Q?FwMBH0sVQz3bsfg1zuvTEvNaHBA4kxP0Zt3S9OlmMP06BJEUSCAeU8eA?= =?Windows-1252?Q?MId+NK/8RifnKsR2MzinQrgTWtzqVdhD8IzhZRJ6YkUk7UF9/x8wd8TZ?= =?Windows-1252?Q?VIdpUiILmNprOUs23r+Soulxi9eJHoRRPY+p7jGGpWeIJBF7Qicm6EVu?= =?Windows-1252?Q?37FbtqmIELdN56vQupLZSH42mn9BHtbAGa8aWNJcs9QLNvPm2B9iro+B?= =?Windows-1252?Q?mZlCsBHPADSFPuHBob7EnyS7BrdDPQDowf/PaGOsgTI7V5nJPLTPr+Br?= =?Windows-1252?Q?EF5bHKZaqCxybw7rZM8aYnTJ8N/iyZIjtX3IV2jPtp6pCUtZP4u9yyNL?= =?Windows-1252?Q?8Lvaoo3PxeBi4DYPmmhEyZ/VAQXMV4D0gYQ+xa7q6t09hRzS5XUhboIM?= =?Windows-1252?Q?L6CFzPbA8G32Qa3cabu50cfRvT87ca1cTip5qpszElijDt3viMU6ltHJ?= =?Windows-1252?Q?AolVms+H57MVh6XstY11LSsp0qN3wJsPoOKGewlEnsuNHV8iGxDI5psH?= =?Windows-1252?Q?/HTYjZq0+2sACh694rBbBJbu9T9rKlHx7dr/Wr6N64wmRJkxnJpX6iLW?= =?Windows-1252?Q?uHIL7vqSqXdu5+carBLvmShzlaycsaDJxbAWAbG2KHD3T25BV34ckyKR?= =?Windows-1252?Q?RQuNKGw1hvxQIfdLb6xQoKqWWfmHSm9mvC65UPaiGgtgOGUMwHeTNDai?= =?Windows-1252?Q?OcTsmR9Brlp+HsDkXBEz484Q/c18e/9a2KgI/QtGN4QWofp/svlGCKqU?= =?Windows-1252?Q?WbJy9nQlNKcZoGaBxeYhM72QxGfmWLq1bh8fpy6y75r8Pz/9ZvLNKLK7?= =?Windows-1252?Q?iB8KSgt20LSYY8hx9GwroDWoVqPR5ZR+MTQ9lPz6dIRzt7K4JFoQtZPM?= =?Windows-1252?Q?vHvzD4RcEgdWcZoqlBtVcAAlKk2Gy/CjQjSizsEfQcKqFbSte9xz1Spk?= =?Windows-1252?Q?roHcttFbyFxyud0Vyhfgfe3hwadv7wcZ5VSSTaa4kjSV2Wk4luxKtpi+?= =?Windows-1252?Q?Vq3D0AcSyLh+WGk72E43rSjQRzvFW7ZNxf2zIXy6Buxkbf0megBuIZor?= =?Windows-1252?Q?hmh?= X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;6:xAVHAapqlDQJ6QKqP67r1FoXTNqTHKXUAxqIlpllJh1lFROObGilaYRmr/+KUnL7Y5pjjlElajaVv96vZkkm/8TvnlIONM9Bq/uTy9pGcJybl/YIYkpZyXrtmgQc0KFx1Z4dvT6C8xe9WOgvL5TcuC2vhZPRrcErr9+WI2LoWjajJ1mmAjyiMEekrYKKxMkHuVdPMFNmcyh+WKTT/jMyGoGCa9SP7PLESR46aP5GrMpvdygxWxRon+MdIo+l+okM/nB5TflMsA0I0X6Q6ctZrXtohjlqGKEgucNmQ81EYDXBhQM2jbKUmlXm/JGFDeTPAvXL4pfGhJGIXsv1NrhcQbahyGRzpKdS/bj2i0r49wzQotIjYfRTL3RhM9c2e0ZV/Z5mQZaNl9D3iARsvAYdziqdfogUaySH4P5FOdDJArE=;5:1tEfTw1FDKVX3GISyUdrc+QQPf9ZQlOPbL5PK+Xr4yUdua41Qd5ya8jJr7KQ5nyuJB3pfOmR2ZfaVC9zbS2gvE6JafMA/QJzOymfpvBb2nGLIS0LT4zOGqeIqZmqzvLC4J06pStK/KlSKIndH4TFSg==;24:k28Z4wy4XOqAreMr4cm1dDGrC1asOYDz0d1nf6mSVZg36pokPuEAKptifd2lS3YGThXZwupFVe8vQXx1OUcSIZ6YhiiT/nZC4hVhDwp+2mM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY4PR12MB1144;7:agLb7DgOJrvMxG4o2K4oSpId/2S2UfABZBmalnjsxOA9ls6DWQqcb1uimmWxIuq6rLJwg9muTXQtu9zptUkT2duNzKLBLbVDzNVy2yRuRG+lnn73Le91DJz9aKlXRMMZ9Bpkftg5s+3nsfcXmMaK6lCs3hs+SFXYnM2HlKvAebzqg8mGDkpwa+C3L0n4IwV7W2gyVnobvEWLYE7hGrdO2TPMypXAMjM6W4PjixB52OHnD8u5c9rbpIVKkKxA/P3fdZF/hxh/0x5LYXUmxgRUbTJ1S8rV4k8V4xzD2Jj6dSf19LZY9B65mIap8Px0+T/CF5yqYH5znnlEOdZLvVOKiw==;20:YNXc8fHtKswpn7izwrhzeoG5aPEVnDRfJD39Gwsze4onZvvLd9z2uubihayPpfDpzcr2JgN9IcX4W8OwQkn5Qhq/AA8ED76z8mYBMp5vSHZCGnZY7c4NCihe3pmWi87+gbci8GwKZaeR4sp0v9wzRdNq+RPQ2Emqbkvpi1s0xPDbBtRa/6nJDdI4Q/GhXCW1Xmcj+aJ0z+VpDnkYuPF96lZnjynWTKaViEZGGjvE/8x2yQZUtn4AyARMipgY0Y+2 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2017 20:09:47.6806 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1144 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3673 Lines: 135 On 3/8/2017 1:09 AM, Dave Young wrote: > On 02/16/17 at 09:47am, Tom Lendacky wrote: >> Use memremap() to map the setup data. This will make the appropriate >> decision as to whether a RAM remapping can be done or if a fallback to >> ioremap_cache() is needed (similar to the setup data debugfs support). >> >> Signed-off-by: Tom Lendacky >> --- >> arch/x86/kernel/ksysfs.c | 27 ++++++++++++++------------- >> 1 file changed, 14 insertions(+), 13 deletions(-) >> >> diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c >> index 4afc67f..d653b3e 100644 >> --- a/arch/x86/kernel/ksysfs.c >> +++ b/arch/x86/kernel/ksysfs.c >> @@ -16,6 +16,7 @@ >> #include >> #include >> #include >> +#include >> >> #include >> #include >> @@ -79,12 +80,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 +98,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 +128,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 +155,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 +171,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 +251,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: >> > > It would be better that these cleanup patches are sent separately. Bjorn suggested something along the same line so I've combined all the changes from ioremap to memremap as a single pre-patch in the series. I could send them separately if needed. Thanks, Tom > > Acked-by: Dave Young > > Thanks > Dave >