Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751308AbdCQTzi (ORCPT ); Fri, 17 Mar 2017 15:55:38 -0400 Received: from mail-co1nam03on0082.outbound.protection.outlook.com ([104.47.40.82]:11180 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751250AbdCQTz2 (ORCPT ); Fri, 17 Mar 2017 15:55:28 -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 24/28] x86: Access the setup data through debugfs decrypted To: Dave Young References: <20170216154158.19244.66630.stgit@tlendack-t1.amdoffice.net> <20170216154724.19244.71396.stgit@tlendack-t1.amdoffice.net> <20170308070459.GB11045@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: <98ca8669-ddf0-b77c-8608-99bb5188cf73@amd.com> Date: Fri, 17 Mar 2017 14:54:56 -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: <20170308070459.GB11045@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: BN6PR17CA0007.namprd17.prod.outlook.com (10.173.147.17) To BN6PR12MB1140.namprd12.prod.outlook.com (10.168.226.142) X-MS-Office365-Filtering-Correlation-Id: 829690b9-eb79-4cdf-75a4-08d46d6f8074 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:BN6PR12MB1140; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1140;3:i6mR21nNpHD+hVP/RZucRCRexT+s2Bijxxm8MHWch5xzy1uF5DN9EC1bLcNo81NU7icwGFJptmhqDKpf6Ycz7EebxfMnH05D7TL1QUQaFflxlAcA5rcT3oemnSOig/0Bkw6xKAdwO4JWfZEzU6URjdAafd8fxMrASMKNivk089Dt3qm7ibk3CVE+fKqVmACVON5X+G3r1zVjgOCpaOOlAZ3ukg3IShmEDpqJC8NrHcb0pSKZ3j7mi3gdZIfNuff98Vn3CxZUmDWKUc0yFarKbkpR56itnO19pm3xjZ4DE2g=;25:2klj/q5xKuKrLsgg+MNSJ20wxVNg4sge4ojK4rNebgTzLSg4SI52k/pBd1DqHvYN2FjKKG15vX++iM3r1jaDFxOqRFFodGvSOSNqfw78/1swOJYdjSt2w/WqjW/xAGrne9tHRhDissnwli5qHy9JnmLBZ/nWcMvQJ5BJzhrvPsz1OW66dh9wgadi1dXZSxGKUBHurucwSXTV0k3666W3JJC12FK8+hTVf4MmCkBw2TlNXH8M01u2JOfKiiaarLS4admyCXFHGt5uUCXa5s9gonfNbw0x3ZI/StFebRQSuVZNpZIHYBdSCzDelvtP+zSer67ES+TCOpSFcHYLPZ6XyqBMg//SgOut/E2nVK5Gxn0MFeE83TF+oa1uUvKMnJY3CG9ro5mKwAtlsdGFovRehNV6RZMOX8keHWFWsP8fK+09g52O8Y5AuYBBMJFVmLhYaFPB6a4eFSRrFmAuJdCrhQ== X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1140;31:RnxkNJgm03pIuraYW2GLbxlBC0ZmcY0y+qyHU3PkYQWqvy7GzfhcW0LBzu+N0CBnF3qhgqK2Qthst3MWMZQ2FHifYNIU2O02d9QUHFZklpYZRpY7sQVgmEubH6pjBnd0IX6UW9a4y1s38giTnTeP4sFQEsZ7GUl7oE0wH1FdI1G9p0eoC2AOUmD/mXMpFJ2gGiD4G/q9q5sKkY9iFnKEyQRLA/bQpuTQB4NSrUEU0Lw=;20:w4JlODki6Ft0DdXGlMukWhEss/r9kcKbNeVZ3nwL6FCVFimJ/IasK7Sf0VvsWHg8Jyw8fsoNOuGudH5CVgXGqWWOcOkKdKoeBP4DSHsbXZol9daUxS1c6fe+h2rBWfsLUYIGw360XtsBA41i/FD0KjQ2AEQmQmdf+DMcaUuTzuY3PTkV8Y2cq4d1Ml8TuRsEQfe9boMGW87Js35qCS07CmldAS5BeVIUjQCwIIFmtYZZtMThCb2ieOTJWJP1YGx4Pwu3VI38/LC3liwtKLpTpg1oL7WEE4u/6KLpXd5EgRwEDPkrjs3iNyiy064bMUrAkAiZEC9hJUdySt2X01t9t/YVXw75M500/rPxamk+TLR1EtPMnT6MjrWfqbv3xkegwOTqtCe/4ZqyW5AHlXqoJUIftq7/4XNsflUENQNk7Bgh3cuX9aCQbba3hgWNbuyEKqXh0S8VXnrrrrQBioEIs3X1Y9oac0WQr81otPeYs9vuNRa+l9HlxVmyvcZQvvfG 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)(20161123558025)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:BN6PR12MB1140;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1140; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1140;4:y0TStoZqyFcvkjjEdQzuD56lMZOm6CT7Srb4+NXEOUefApkIMB9M9ab35440M2x4x/LDD3JsmAkntr18cJNoKiNbAHZQYmQ/Vt4ntQtOdtMKw1xoU7pSr608sI3S+rI5P6eXpZ2kRv4I0l6ukjtxBb4p33T/FQqsRT/NFnQsTXMFWdkxItc6kFEwLX6kLJT9X+jlalDAYnAVHL2S+CCT0k4o2MqmU/nasG1/2vJS0Rcmkeft4TljKqEdM3qNbXs0nNul7Nw3Bx2vgqIQuqfv9Ndk0Zz/PL1JsY6nTon3jVJl3/QvfBL33CJHydIkoSuxPYwEWTVC9RxN4j7IIbjTCG9HQ6V0/NrVtJvtGwZOoFajhHPZKIkJwIo5EXUjjVvoYfih4R92X1P8Ehw5+mvCnuztvu3K3S88iCiygeBZmdwBpZz5zME1vGF/bvXaGZAsXpCRrhL6ejHW/n2BXIdrd8/RogdXktcWMsL+wz3O8qWPzVkmMbd+9ITO2ucdhVsRaPCCOM7pzV4AmCvSRqDKV6q951rwf3j1jb5kJz6P0jcn18JRn+z55Or+2lnDN5MEZv7wclIsDmsNXnNYBYz15evZcycFTc0u8945RGY1HKumW4ohOWuD3bcKvPszW0icoOlvuNWFbkNS3lcKl6UALWDyqWisFPqg9St5fexRx5c= X-Forefront-PRVS: 0249EFCB0B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6049001)(6009001)(39450400003)(39860400002)(39410400002)(39840400002)(39850400002)(24454002)(377454003)(2950100002)(23746002)(81166006)(6916009)(6666003)(230700001)(33646002)(2906002)(305945005)(7416002)(64126003)(189998001)(7736002)(53546008)(50466002)(110136004)(6246003)(38730400002)(36756003)(86362001)(4326008)(54906002)(66066001)(6486002)(47776003)(25786008)(8676002)(77096006)(5660300001)(90366009)(229853002)(42186005)(31686004)(50986999)(6116002)(76176999)(54356999)(31696002)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1140;H:[10.224.10.65];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;BN6PR12MB1140;23:FwYklEB9pqqmv30NZzwLO3akXX+FXOnetNOsJ?= =?Windows-1252?Q?KDAZw8kalsfDuj/IJ+RzMNXqmGUFtrUQ5Bi+p59zCp6tAy+dHPoYk37N?= =?Windows-1252?Q?ZOZ03w7G5Q6muBX99ZKeJrBk8P5Olae9L3QrPh9cHK1vfmGQF9Hq2Y6F?= =?Windows-1252?Q?54eTc+3h+IJJOAdqOaSGf5shor1FgoOfEqjEWp3qo3ZuMbHiibx/pqO/?= =?Windows-1252?Q?hqr5nEnc8eqEB3T08ZmEGEhrUfkQDLWNOI2dASERY9ZMhCIBY2byLSkZ?= =?Windows-1252?Q?MCm9iT9ow/tXCFcML3cJ016oOBK47wy7PKNdP62ZTmdfi5Fs/JzKsSge?= =?Windows-1252?Q?IewQ0KsJzjcw+/hgEL9hx7I5+Y3BwN42VlaUfVHfiTQZ/3x/Km23ZI3H?= =?Windows-1252?Q?khlC1y9txr/mJda+TNH+OOwB5aPeFY9AoRTL5550yQ3cbPqf6IYXyrQe?= =?Windows-1252?Q?W1AqvZQ/kVE2flEC36uxFkqmujUBUtugY2zrBLKr0ZiqRrfLMU/4GTif?= =?Windows-1252?Q?a0l4e3XtyafnuTREVv64hHjGyaTvNxXn91oF34thHxog3LWQlBF989QO?= =?Windows-1252?Q?ctxF9KzaHfdfBefYsONPGrjaJw2TE7+2g1pMoTi/mGIBVizuQt4ccBAG?= =?Windows-1252?Q?OGligVhkGuCBiDqaIhMe7Dm4cVCHMbpUQ9D/LzKy9sNV0Wj7JopxxDX6?= =?Windows-1252?Q?Q2hI/Jp3I+eiCgniTQlKP2WvL6LMm8McBoSkBhwZJZwsrc48aJIpLlfN?= =?Windows-1252?Q?pcBcJVEhXA2JM7CU3tHyloEm1I+XyBiopW65BlBJsJxVpBBD8Jj4uNCG?= =?Windows-1252?Q?ICbsOFnK8t/gmMzBZ9akfG95gg7B5MjnXZEeWGbmd8QwZpD5x0mRXZIE?= =?Windows-1252?Q?lVm4miUig5Ozoo4dW0H3WfLtoibC+vwEXHn1xgkPc7PnLY7pCvTVeds2?= =?Windows-1252?Q?jeGfnCEnEMJqxyCwm8OXGiBvvC0RicGkljkXhb1JacCqtUtwE6+nB4bt?= =?Windows-1252?Q?fUr/sUuMy1DjnvV25ptY6HonrihMglnF5R1/ch41kG8FPikf7WHd0m5z?= =?Windows-1252?Q?08E1Z/ZT0DfV80g9We+XG5Q5SUc0f6KR87naWRwEo6t+pnD5xhUhh2X1?= =?Windows-1252?Q?G6LGhBGi2N2fTG9JFvGb0gbYIKgOSfdOodMMnEISILT0HMrV7nCFRGwm?= =?Windows-1252?Q?6OkZiAfrPbogIYVqyh2ALBC/roxu5/oX4EC0vRhDsLYWF89zLQODUfo1?= =?Windows-1252?Q?0otEz9bYX7gke2epBTnVrk3IFLx5kwJYn8tGtQzV0jgfuwSyYgdEA5t/?= =?Windows-1252?Q?rsB?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1140;6:KaTeuHz7YcxyTh0K5GNrfsfX7UDiEU5h9ObjNVg1sORo1O+uPjxGG9gtzAXiCAS9ghW/qZ78t4pyhAd+LctAW+8V+61METuZi/m6OEHur5IoqYeNrDkEW+fCpxCm7aVgHno+oEfH8UWOUldsWyyo/e15Gq6Rvc7JTMmsyt7QPzYeg5WWsJ0HrV/1hMd9FWxR8dYTx+zFAp/k+tS1L3ordCDa0uikoH5PcRXt7u8TIXeXp2Ew5MwigIhzPujJ8hzCfuTby8phsEeGe6G6JCsIMr5sbceMzwX3Y/W3gU5gjXuPsmuwGUirMyuki539zZS8eSvvdwRfw0h8Sb6Q7xEJKVZaq1RD6bkfoA+yvjiS2ZuET8zwSYfgDy+YZJgB0X/044Ca2n0V+RdONSIAA5PhZ4R6109xZnRpLhW/9X69CUs=;5:S2wyoFC+0tRk2kYFdYzITOoyu/b0xG7aeiQPtCAZae0AYotLDqXykuOObHWpdjbqzY9tK5SvLQFQDInIEARL+GnDxtYr/ihoC4dWbT+gpzJEB4UdAkrvtEfeUoDyQLwqnAUG05sLZQoBEJ7UBOmGuQ==;24:zvHCVQ32YZnp2iad4+ZcV6vq1dwODQltwtel1GDTcdMdUDQ3ZRYMXsaCdOVeu6z8WgIviXRsrSLCcUagfRmrzNJBdSCaVnVnfb5Ce34ddzo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1140;7:kVrwJ9rPzFs+dkQHT7qsSRkb2GBb5oIWmpcoGJsiYb3p6jRtDHj8Cne0K3Gk0OprwhA2epG0isSOSS/sYn0wumj30CDwEL/okaWvkC4KHhXpoQIolASiRdAend+9PEke9v7Tm/5nnX3GRZ8ZgFkTCd3dLrd06MltHlnU1nra7NVGJR0mN1ziCRo3EYL+RI01InqgGG8tpOeXOmuSeQn290+vwm0fnMBWDjniIZSlIuqBbNXfzKcLWGVU4FRCiAwzN+FKnhOt24307mQqvdqlPBxE1SGIxXNqbP86mMDiIaUZAeEZcHlWzo0IC5PWKlT7bGLnW/PhBp0wv/AHRO9ycg==;20:Oa17xdCEe6NqLbI56BEa5XmNT2UW8pn+Zsgk6xCZvE18n8uXFiADrQSryOV9xPWs+o0b56nIyx838beYCHdFDUramU1DrnVPEq1f4NCu/VBUCHK9F3e4lRPdh3nneMBQ7D0OxlGXIaFMJHLBlX0ydN0Eiw0zY2SAg4iZryTegSe631u1HRNzYpUMZmRiT0ylKrM65reH9z6VVW6XEZ2rBZ+ApXsx+Cs0+dtAuvNzjCsg5PIjT7Fe3b3CZ3ifca+8 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2017 19:54:59.4185 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1140 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2301 Lines: 84 On 3/8/2017 1:04 AM, Dave Young wrote: > On 02/16/17 at 09:47am, Tom Lendacky wrote: >> 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; > > -ENOMEM looks better for memremap, ditto for other places.. Makes sense, I'll change them. Thanks, Tom > >> >> 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++; >> > > Thanks > Dave >