From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756735AbcHVXOE (ORCPT ); Mon, 22 Aug 2016 19:14:04 -0400 Received: from mail-dm3nam03on0089.outbound.protection.outlook.com ([104.47.41.89]:61046 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756487AbcHVXN4 (ORCPT ); Mon, 22 Aug 2016 19:13:56 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; From: Tom Lendacky Subject: [RFC PATCH v2 19/20] x86: Access the setup data through debugfs un-encrypted To: , , , , , , , , CC: Radim =?utf-8?b?S3LEjW3DocWZ?= , Arnd Bergmann , Jonathan Corbet , Matt Fleming , Joerg Roedel , "Konrad Rzeszutek Wilk" , Andrey Ryabinin , Ingo Molnar , Borislav Petkov , "Andy Lutomirski" , "H. Peter Anvin" , "Paolo Bonzini" , Alexander Potapenko , Thomas Gleixner , Dmitry Vyukov Date: Mon, 22 Aug 2016 17:38:59 -0500 Message-ID: <20160822223859.29880.60652.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20160822223529.29880.50884.stgit@tlendack-t1.amdoffice.net> References: <20160822223529.29880.50884.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: BN6PR17CA0009.namprd17.prod.outlook.com (10.173.147.19) To BN6PR12MB1138.namprd12.prod.outlook.com (10.168.226.140) X-MS-Office365-Filtering-Correlation-Id: bdbe02b3-e727-4a75-a12d-08d3cadd1da4 X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;2:aJbwfCHtjZ+g0xPaksefLDTEVs3Mrk6F1HP4FBqX+0XW6DYCWf3KdKe7GT9PFw2m1YPEdLetNe3QRw/tv+qr5p6hEsSVCYloq8zZI4Ta/BvvfOzlIBwFL09yY6EULnHi1GLKZJR7SD7eVUc8smI16MfWn1abStC8jgXHZN8EMoHlAlz4QpCSNPW0xbVeqatc;3:i/LimSIK1c4YR3NDR5lNqfC0Vq8UkMDi85f0zxRnBAOt4zCoM98pi5HH+fIsto7KF0JcPF3Q0/ee9AIPMxX6ussiV1LIq4Yhqt3iP9CpV0gOuZF/MeZf7So4YtPRtRO2;25:uHUvsrrKg2cVoeK8rxtOp4eERxhg1gLJTIXknTiOAJkQ2Z+u4RFPSB9fcB4IxQxXLNuC2fTrREQ56SEpJqarb7T+Cal7eOHgnUwUOUT3/43HIKNNDShu+rW3GFABux2z5suhNERjJBf7PAZmGScxjHw7VtjdGFhXIbK9Xkxq5GdvYs4S13mq75d+2Ibig8qV0aHeneIVEXxlhlibplOz65fpwUItQGYhuioamLHlrbUe/Zvat+OMXeI5BFDoA+QcyuiF4g8YH2vYTDH3qK/VOmLobdcfB/hyYB1VNRFI2+jk71pLAWfdxt8pS+GS5Rt24e8uinmfb5Nxg5vkbJczKWD0MoLSVj+Bgl7kgLVC5hXZyhgv7HSg6Mqm+LLcay3rIBWjg0ud/etjr+VxWxRfxfoxNWvl8Nd6cvto277tj1U= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1138; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;31:4Y/Tj6rsoYkjLD2KgwAMJab311peeMZbojhsmyVGnqmP+RE+AlOE7VcH9kQ4eoITIpH2bTqrxPoD3l+0nH7Agn8bJbdhsiLgVYoUBiuTCa3TbzR7vpxctRj8t8jyA4Vp18Os/CBah3jINwN8yBQMZ0oWsM1zHJFAmWNlTT/HIplhwgNVFMQ+jNSq7a6cCu/omh7Ebf+QIWy1ZOQ5Td4JoscF13lQbkEQ5UbcXZ+z7NA=;20:iEsWFZERptxAz26qyMaULCtahHj5L383stuAJ5winIxv2VZcpZ4I+TJtDLo6arjKC4oXjGqgWTopfP9gBEpyKCK7xU0M/hM/uUU+BxZYQZG99lrT48vZvvZ/Xz/7RWuvshmdZw5QhwRD02LcH86ktz03qPcg4yPUwM/i4O6iUdNEgIqIzeBhWRXH1617f6yEdk3XJzEtdPojR6oT0BDj16uRd6e1UOW+CJ3qsLuF1Odh0tItEzhIHKFI7n8K6JsuJ9L7Yk/ZUO8Za5vYC/fpIIAjNBiDhcj4UyBgO8RPj3QKrrsS+xe/IYsjNvzbTpS5wvgbpsT/scUC8as5VldydA3jM7vXKjCl0YJYxaxjlQ5+rd+XJ2hP1pnmCdCBMbnRZud1qowHSXb1cM0yrnMwjCkt0WVrEuaXi2wVoJ+PfOi3W+yYW6zJOGGgjA5XrJQrxExQhb11ChnhERO+FbXinztDtsxKwjXsVcrFmdt46+1wJ0EZA1DTppZymmrcp29H X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026);SRVR:BN6PR12MB1138;BCL:0;PCL:0;RULEID:;SRVR:BN6PR12MB1138; X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;4:KCiHpIqtx1YSn9PRndA6KKhCalFMl1da4sqL+W5FT6Hdc4IMyePJ1mccrU7ELAsuY9LtvDuwqbzzmv8EcIDYgU8Ujde+zF0XdiYG5MKbbunHKd38TfDERsoB+1JCRaIXTOXuAv5eJ35LybGtxkOZtA9mZi0+pfYx4Ad2Co7BIKZA29MgNp1sRF46YLxt9Orkru9+fx8owpclLdpNnEjzFzFgDqA33OPwiDC4B8UVgTqN93+tQ1B1uPcd2HgT1p4GukSCPUifBXDtc47xUL0J4Ofeso/jd5/TPPXkCe+GlJ/l1iE/1ijKJXIhjTlBkJ1ZrEHb9Je+ylUsT189NhOzHQx+xQ4TfpQsH5WlBsRfckGFZJFxfHYY8XShV/oBslzau+O/pFyWSJdaXCdgEYEsiLGCYUQzwUzEKE5x19w/SnjOgMXRFVrkEw2zqdcq+7+R X-Forefront-PRVS: 00429279BA X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(189002)(47776003)(9686002)(68736007)(7846002)(86362001)(19580395003)(7736002)(66066001)(230700001)(6116002)(42186005)(189998001)(103116003)(4326007)(69596002)(2906002)(19580405001)(1076002)(50466002)(305945005)(33646002)(83506001)(5660300001)(229853001)(105586002)(7416002)(54356999)(76176999)(50986999)(97746001)(2201001)(92566002)(8676002)(23676002)(77096005)(81156014)(586003)(3846002)(5001770100001)(4001350100001)(101416001)(53416004)(106356001)(2950100001)(81166006)(97736004)(71626007)(217873001);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR12MB1138;H:tlendack-t1.amdoffice.net;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTM4OzIzOnVXOFhXVVI4NHpwZ05pUmtiYVdMbWVwOS9r?= =?utf-8?B?dzNncHduY2tTSld4NEk4d3Nqa1VOVXZCWU84eXpwbVlFRlBsWXZLWU9IZS9J?= =?utf-8?B?T0RDbEJoTk9LTzFLblBDenV2eFJsb0NPektkeEZHcThXKzU1SWIybXBmd3NN?= =?utf-8?B?Ukk5VmQxUGJKYnhNZkU5YU9OVnZkbWRRV2YrY1pUVTBsdGppaUxTMnhQOWVZ?= =?utf-8?B?RHBzNWtUcXA3NExXMlNUdGRlNDZ4UnRlRnFoZnppMEFEMEVkc00rR2t3Zmw2?= =?utf-8?B?MThuZUpDdHlWNll5bGhNY1lyNHYzdXpCQkNGNVFDdTlLMnNlRzJjMi9MdzV2?= =?utf-8?B?ckVVUjAwcUdrcWdIVHozSkFYTm10eitWbWJmVDV4a3dwNUxmOGowdTJORjlz?= =?utf-8?B?TkNqa1JCMXVUY2Rob3JVT0ZIbk1yeEY3WXM3RjhERUFtUm5TSitoNkUwdlcz?= =?utf-8?B?Njgvdld4dXFUNEw3OUF6eDdtOURnbHpHMDFrY3d0SFUxL1V2WEs1cG9HbjFM?= =?utf-8?B?dzZGNlFEOTBEL1BtaW4vSmt2cEpyZ3hxbXdCUHBha05pNVFXNVFTSmxyRlcz?= =?utf-8?B?UTlxNnZBVnpQelY2L0MvYjFReXdHMThnTHozWmgzMFljOHoyeGt5NFpDK1Rl?= =?utf-8?B?Wk1odmQzZ2NBRHM2clQwYUFSTjVGZWhmZEErY3FZaVVud3Y2NURzRXY1ek9q?= =?utf-8?B?M0UyRTZrZGRnejVKMkZrTUwxRjQ2Sk5IZHd6L0hwbFdUWjZJc3BtMEVIcjJ1?= =?utf-8?B?Mm52RUZ6dVVFS0NkL21vNDBoYitwRzF5NThlTWI0NDFTa0tycllKekJwUE45?= =?utf-8?B?MDhBMkxXc0RNa201SHlxbXpjQ1g3dEpCVERrOTBCbXVuUE1KRm9lalRpVlBj?= =?utf-8?B?RnR0eThrZFhDZ0lSZHlWRlIrNDV4RFBOdWw5VU1LT1YzbXIxMndqc0Q4dHM1?= =?utf-8?B?am9sU1JLSktUQXlDTTlCUmdUYU9ER1R4aU9rZzZoVDhCdS9KOHBmeWRpSUNO?= =?utf-8?B?Qndhb28xQlRnUE1xVmZudWtpS2R5a29MRmh0UFJlLzNXdHpLa0lNdGlvZGNl?= =?utf-8?B?OWx0Rjltck9pckVHWDdCVWVPc3htQ2ZtaENxYUxXcU9hcmJUWXlBL25OcUZW?= =?utf-8?B?c1NQYUtuckU2eTR3c2dPT3dQMWthdE1JUWVRY0xmSkdvMEFuakgvRS90UENN?= =?utf-8?B?d0hPaXNHbHJVTWczVjE3RW16S25IbGdDMGlCVWhONVM4enFmb1NNV3kxbXVy?= =?utf-8?B?amRBMWlFOVA3bEJzR21rVHdLaWRvL0RSUmM5VFNyaSt1T21yaXFyS3NQQVFY?= =?utf-8?B?RmJBR0ZUcXJwNlVnQWhwRW1GUnlhWDJPNmR2NnhoS0xWSzNjMzVGamhnc0tR?= =?utf-8?B?VVVjUDcvK1lIaVNleFI5Vjg4M3UyTUt2UHNlUk4xUWE0MXRxemlXRUdUL2pO?= =?utf-8?B?ckdyQW4vZG40S1NNbU9ITDIxN1RKa0tSUFExczRPS1BySXEzYWxXNjZKdVVF?= =?utf-8?B?S1V3VGFkaWh5UTRvK2pvanJyLzRMT3FmRWlnUEN6WkZ5TGxQaGJsM0Fjd1Fu?= =?utf-8?B?Tml4NUsrelljalBaenBWN3FuODJxL28zcmk5SUtQbG1wdVBvbFE4NE5YZlow?= =?utf-8?B?eGZzY1lxZlVXelovYjBNWW5mdEF0RnltQWtyMnRYS0pZQTF0OFhGWjl3b1Fi?= =?utf-8?B?TTgxZzg5L2FUR2ZxaGtZSDhHYzgyWU9mZHBRTFVqbUFrbUpab2dDdENxQ3dD?= =?utf-8?Q?ALkLbMKdWNZ74xb7CbV4E7q2Fq76H1A7PCv+M=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;6:mvdmSwOmVclkx9lOfrWuF2hsjBImSUXlw3kFs38tmXCRWTBggLwqqIKFgYvrkBcQEQ47kQc0k+4XV/s+F1b+oZzbvmJtWJPxqeaepdF7+pqeBxpgRaBVUc00PnmaGz4PkCE1PSZVGZJSM03Od+m392Z7WQXoqvrLrqxN+Yy1QQQGNnfMd//x7AfTNizYkavvyGKcNuFoWkbMcZJdevDEjFx2mKXZx3SOy7d+XAXv10s5+Ul8bWIUV0Q//EvqsKcGELIumcrsT9QEs/wIkhFotUZxIff+m9KS2LExensojpHTz4gSEJeennqpRuC3KH5l4ftME6xC69HFN5iu8V9Tiw==;5:y5klLHN1Cg0LjPc9aD0J2pHGROlLc/opMlKhVNq7XtibsJFdHEMb+ykV+KLntO4dzSgx0TkiyOXK+ubCdrFpzoThNuvrUOa55ZIMzVKzE+iryeUeOue9XgAn2IedvyUJJUDHc1C0ZEy3Il95Y3ppTQ==;24:zi2HXtgUJMwU+SziCVBQBVoWDYQw9fNTJnz0YsCsKyrgdX76Hg5njLIh/5kXyAs1yvX7q55Ey550pvYS4iZG1gYHobznfimreBGes9GTdfY=;7:iTw31v2x8XN25PES9HtvZ7BsjEuDTpyWJJGWc/keYPAD9BYthmq/7MiizPyoPjt2m2WyRi9qKb/etGTU5QUlseZpYF7iT6Bdo5XJs/y/pinZipHWGKpA9G2gotE/QBn5l02U2yUWk0xdmSD0Y80etNa2AS8DHHemDHsuLH4OCTBSMjgUC0eQcXgU1eLstaoam904Let7k5OsNpOIgm4oXdo+x4K2FqpByQTxECnNoMSTq3OuqL9bJ+mhbgLkqshP SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR12MB1138;20:4rBMfDHncIR1mYVuPeS2t5sjPe7ci3yfPxiOH+I7X5EnHiUl19w5eiOOq9zycGkCiyPqtO3Wj/6NzsBK1wMYNu8XP4thvHJKMw8erbUXNNrzJkeXuTPxiDoPZJEbfSC8TZ7pBCgLY/2+BIFLQInOZoAgpouoYKVIWkNx9ZvaUEJdyJpJysNaX+3ocf5OJcouBP1rb8V9BZa1uMgaN5u1hvF/c/Ah+WiHwJZ41q8Qcruz8d4QvKPAejbJWUdv1Qge X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Aug 2016 22:39:01.1433 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1138 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since the setup data is in memory in the clear, it must be accessed as un-encrypted. Always use ioremap (similar to sysfs setup data support) to map the data. 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..a58a82e 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 = ioremap_cache(pa, count); + if (!p) + return -ENXIO; remain = copy_to_user(user_buf, p, count); - if (PageHighMem(pg)) - iounmap(p); + iounmap(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 = ioremap_cache(pa_data, sizeof(*data)); + 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); + iounmap(data); if (error) goto err_dir; no++;