From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751858AbdKVJCA (ORCPT ); Wed, 22 Nov 2017 04:02:00 -0500 Received: from mail-he1eur01on0126.outbound.protection.outlook.com ([104.47.0.126]:58000 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751643AbdKVJB7 (ORCPT ); Wed, 22 Nov 2017 04:01:59 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v2 06/18] x86/kasan/64: Teach KASAN about the cpu_entry_area To: Andy Lutomirski , X86 ML Cc: Borislav Petkov , "linux-kernel@vger.kernel.org" , Brian Gerst , Dave Hansen , Linus Torvalds , Josh Poimboeuf , Alexander Potapenko , Dmitry Vyukov , kasan-dev@googlegroups.com References: <02da46906066215f87e15a7a406109e353f4381a.1511325444.git.luto@kernel.org> From: Andrey Ryabinin Message-ID: <8cd2c81e-2cc2-2659-36f5-1e49f755b4a2@virtuozzo.com> Date: Wed, 22 Nov 2017 12:05:21 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <02da46906066215f87e15a7a406109e353f4381a.1511325444.git.luto@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: HE1PR0301CA0010.eurprd03.prod.outlook.com (2603:10a6:3:76::20) To AM4PR08MB2819.eurprd08.prod.outlook.com (2603:10a6:205:d::25) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e2241863-45fb-4540-f7d8-08d53187adfe X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(7168020)(4627115)(201703031133081)(201702281549075)(2017052603199);SRVR:AM4PR08MB2819; X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2819;3:E6zc9V1EytUiAilEGHs0a+bD5R+KfgUnGPYhodrifwSVsFtKgAsgUh6rYGp2O/byKzwlfb/YqmdmmcmS8YZDFgTv1yNukFKs0QDn/qCYsv4vQ4/onwqERFqwT5x0EIhI+OKSjkAYAnd/hxyMABqALBMSNCaB1vsLnImB02zDIbhZXJdrmxzsdxtZoIV9YQpTXxOfcTVjM1qV728vWWWPk1K/P0rRGMcY8w4KvCaXnQldRRbskd64Q5CrEQWetk6a;25:iA+EwEB6R0YPwhypRaho8g2iEQjvrWQDt3iqPKwYfbpQQ3X4SKSw13ACddppO2xPYZVgrpww3sjwgVDLxUKwAaclIdDrIBc26hjQPUCg4ch9S601eiYIDSRtHYSrJO8JH2Mi92AMJMSzEOfm35lukhCnEq2QrimE7FUtv/wWwVk47Btc+Tk6d1/PR8FSR2LnAqxiENof+rBk73Tn3maFqfUS0i1mNN/AJD0YR7mUcpLi8t+lVm9Yp+FbyYL9TEX+sNxMReXnKp8IcCXZUKCt3GmUjdl9uA6NdCmKuBoq2PB3CEi9b6LlhhsCHrdif+dNXlt0cquu6zQJM7uHwAwfDw==;31:1BYRjyDF71ZgJPBTXhS1nnoWIIvNw+hMWxjWIHUnfqboJ/9zeGdTlgMDqEWsjadwXNmZ0KNFh6nz2izoQ4XXCATvaokf5FxEpDZnP4tknFly1ez7NNlmhN6O4ZK+xMq28muVjxvrlVveQ9uOyiFuCawdd5PWItZb4TPPrhdSn5wdpXL67NM4hxZfll52u/tvFGNRG5QdIcPjpL4kUxuocdMkfjY8Xy6ViRJrMIjoBR8= X-MS-TrafficTypeDiagnostic: AM4PR08MB2819: X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2819;20:6m5dyYG2ndVdM+uLnN9ZdzoKlhZ/C1N3RrS1kJGy39UzysLspuByDX9T7pDC2xFAQulthZ0nFJX3mLn/qkRGAQRSGlIdTGuBE+fiiVNY0c1lCQSFP+PSn2NSToX0ZE4j6WuyFlNHhleaYI5aj/WxKKYnUVK+m3MLDBWIEIzxoeKr/2X317Wx+cn5cetw2WeNI2ixX4QEMyiy6f82VokMVLRLyMmyUVgI1bc9rGFZFxKBYIgxUIswrCVUnq++v4/dlon43qjAhDiUwNPORajuzORN6SVFmOHJa7EEOoX/QvB1cg7e7uBDR26TJxehF4GNlAXWmHz8xoZhcOctZ39sa8pQDYzeAmqzhNQgYqmX+OTmUvhvhXjji6MHDS7ikIDK4E/abJ+t4bQYygzYYnSkKexzXpBrjEwStxoxrq5c2iM=;4:JHjogBZcNWAVtcwGvum5j5v8O3PfbO2aAYDCUMOQUsAtzDfmdP2yY71JFq2HpIwXd62yIJvcDpXPP1O0bDrszxHCy2yQ3+Uwr94/tU6jj3UGpgyIlS2+1uPLrxxXUb3P9tgFG8mTnT+R2MIxST3g4yesAsjf304OQGBun3UGhGM6zHffX6L4TYOXL2nnRvvnyMpcXa9GTF7I4Wj2B/q2y3yqBtbZiHB5OJ/h2NsLPZ8+HMfeoKug+FCrUuq6vssEjkyJz2lvEmtRGvam/eCobqQNVvIaNQh+0cWG7PQceuBzpPLAZFb8dwpegXkQ8PD5PToDBljMk/3CaDPKykeCvSnHLlhvbOfDMrJi9oa87QRYsldDke9szfCE78CHPue1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(215639381216008)(211936372134217)(153496737603132); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(10201501046)(3231022)(920507027)(93006095)(93001095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123555025)(20161123562025)(20161123558100)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM4PR08MB2819;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM4PR08MB2819; X-Forefront-PRVS: 0499DAF22A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(6049001)(376002)(346002)(24454002)(189002)(199003)(65806001)(8676002)(31686004)(81166006)(81156014)(65956001)(53546010)(50466002)(68736007)(6666003)(47776003)(2950100002)(97736004)(65826007)(54356999)(76176999)(50986999)(6486002)(101416001)(2486003)(66066001)(305945005)(7736002)(54906003)(2906002)(110136005)(64126003)(77096006)(8936002)(4326008)(39060400002)(105586002)(36756003)(33646002)(6246003)(34040400001)(106356001)(53936002)(229853002)(189998001)(230700001)(16576012)(478600001)(16526018)(55236003)(6116002)(83506002)(86362001)(31696002)(25786009)(7416002)(3846002)(58126008)(5660300001)(23676004)(316002)(52146003);DIR:OUT;SFP:1102;SCL:1;SRVR:AM4PR08MB2819;H:[172.16.25.12];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA4TUIyODE5OzIzOlVYY2dramFEMW5uRSsydjNnSlZqWU5WaE03?= =?utf-8?B?ZVRQQzdUbEFQbGxVUGJVa0NSbDhRZHl6S3hKRnY1Vk9YYmhXRFZSeEYxalMr?= =?utf-8?B?L1cwM2owRFE4eU5aZy9xS1JRVlhVL0kvcnJ1WCtJRm0xSCtCUXc5S2JOVith?= =?utf-8?B?Uy9pZU1xdFVSUlh2T2I1YTUyREpMUjh1dkNuZ3RRdWRxbXZFNm0vLy9Sa1FD?= =?utf-8?B?TkZTQkVNbGlSaEpoWjBNY0Y0MnhhT0kyYkNQUDN2cFRxVkE4ZC84OXF1emQ3?= =?utf-8?B?NDU3VU1RYUo5dTNXb0xqSUdtTlp5TzR2a3gxR3VpVC84ZERsRXVwb1lLTW9o?= =?utf-8?B?ZkVXQ0xCTEx0c1RsaGJ3SVYvcmVQb3ZnbnBlRFFvYmZmSEIxQXBrb2JRVG02?= =?utf-8?B?MDhTY3k4TU1FT2hWbnlhVjd2b3ZlekVRcUNoQ2lXdWVXaDFQSEFmVEI0N2tn?= =?utf-8?B?WndOa1hodHUvSlFVWUNLVFVmaGNQdk5uOUNRYnBBRWJ1amhYeGM2UXBMSlJy?= =?utf-8?B?OG5lZ2NuZUk4WDZqa0xMK0RyblBuTGdBcEJCaTYyUlR5aURyVnNwWnp6M3cw?= =?utf-8?B?T3pCeS90bS9xRDNGbU1UVXJCMk9SNHptcTRwMHZsK3U3QTJwMlBVY0xCeEhF?= =?utf-8?B?WVpHemROckJzOVFjaUxSK1lUVXdIRlBZWmhWL282MTJhNUNNUFlkNmZOcURV?= =?utf-8?B?QWtEbGdRT0FyWUhHcUh2dkdZY09mbUlHVkJ3cnBPM0RFdXRkcDl5SDhTNFNR?= =?utf-8?B?QUdFOUxLRGdYRkxSMWxjUjY4R09XWnZPWG5xV1JvaGZsY2ZxNnpSYzFwcW9N?= =?utf-8?B?M2YxUFNZMTYva0c3QytzQXFCY2pOQnhFRzJMQ0ZRbWlsT1B3d3Y1QmpPSm45?= =?utf-8?B?MG81Nm9rSWwza2lRd0ZkOTRma0FxUU0wcGdlVnBOR1V2UXkraW9MTVk4OGJD?= =?utf-8?B?ZjI5TEFuV1VqaHR4U1ZQemtpeG9LeXpyMzFaSnExL3FRZ2JnbWlHMEpuSFNU?= =?utf-8?B?Wm1MUUk5NG5OVFYxYUUvS0RYZngrQlZ0ZnRWQnh4WktkeERoWnl3dUhZVXFz?= =?utf-8?B?aHhIRmU0SkhvU2pNejFDV2VNdGlXV3FNd0pwcG03Mk0wTi9rSnlieWNRRTBm?= =?utf-8?B?N1gxZ2NyTlhHT09NbEc4WE15OUlQaXhKZGNOQWNiY1Vibms2ZTg0Rm0wcTBC?= =?utf-8?B?ckllcWh5dEEyTXk1a1YwV3RSSllJU3NmWml6SVpMNWNJcGZ4SjEyaE0xNE5i?= =?utf-8?B?OWNrb21KanRDckhOMzVHZTJjeUtvM2EybGtrQ3JoczJZWE5KYTYzN2ExeXNT?= =?utf-8?B?cEdzMG1ORDlCcklrUjU2RnZEeTVhWkdYaWVQZ2dQOTJaVTVXb2FTbGhOMU1l?= =?utf-8?B?QTdIcmNXK0RhOERGSGVDUEZjMzRrbXpoUGZsMDVkOHcxU1lJTHFVTVVWbVZ1?= =?utf-8?B?RU93SHhMT3RYOFUzNDhvT3A0Z1hSOVJoclI2aWp1dzV3cDlpVVgxZ0F0MDg3?= =?utf-8?B?cllZeTNKTlhkdURLS1pNcWRKMllHNzVOaW9oemJ1ODBIVVNWS0NCaGZVQ0tT?= =?utf-8?B?MUUwTjlqT3hpVzFWRkhnZXk0SDJsWC9QNGRxYWlOVyt0ekNhamZNVEpMSEdX?= =?utf-8?B?bzFqNVRCSW93WnkvWlFwVXp3Z2NRRG4vQnpGVDlmUmhJOERzN2g5Q21iT3E5?= =?utf-8?B?TWZIMkZOK3NaUy9tUmNzNkNKb0V3cU0xYXBFQ3VPOGgyelh1ZVFiVC9MWmlG?= =?utf-8?B?Z0pVUlF0eHZIdU1Ba29rZExhNEVIM2RaK2h0ZXAzaG1wdFJ0MnM0dU81bEVs?= =?utf-8?B?SldBRUE4Rjhrb1JFaWtKQzUwelVMcEwrTE1oOG9mcUNRR1kwTzQ4NG9lTUVW?= =?utf-8?B?YWpLaENrem1SQVJxN29wMlFLUlR3cHBFc3pTbkttM3RUQTY0MmpMQStLbzla?= =?utf-8?B?UW9oSTJGeXdNTStTejlQZS90aGVtTjFSNVdjcTNFL25OSTR4aVh1b0ZSamlS?= =?utf-8?Q?B5FqSU?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2819;6:cQYW0xh+/RzcuAK8hS82ILhTc9zt7mrIC3/FMRYhm4kFA+t40OHTJTljmIPy1JRKKgtUB0GHDoGk8gxeXhoFyhzaEaOUauro6rxazHT/D0qZBXl7yEDsJwMNmwcU6CUDO7gafzzbSF53Ef8RtwRuuFW8bgo1+zs9pGw9SspUvJXlTtQED6yqjnVEN4rNbcFgYojKPBg22TdRSLq/ZdIH38EmDcp1vL4vIo1zW+Lq0NFHP2zJ5tFxqTwVqFrNRqSs/QUVaRAE1W+40d1oEI7nfv5nRBtFTarctyqrXWLtg3nfMmDfXOWvj6nJmIqWA6+WQpCT9mI8tZJFwGUDt6OFIi5c+KdIlYTS9skjwKJuk6Q=;5:yj6a6OW84iayiOAJWjRmWx7toPxk+Qkxnn/Bl/oVT/COugZpiv7kTpFZsdiKbzOYnNN/D3/0EbuEciptYLkaR9S3WkhST370+/EAdyNC5oTsyu5Qkk7PH8jedyw1WOEAcL5oQ9XJqefpDPjMKoFQmZAiWTodizltePAZK4ylqX4=;24:FEP9ZfVFs4rYG1pfadP9fKB2C8mvPahRVwMCgiZ3KUjqzY324Ruu2gtgGBs9DoixprBWk6lSKqJye/Nj4ho/tqDTOPxUHkv1XEns3BCrWIk=;7:5E22feGB++10GS9eNNicffMK7cbBqT/CycFRs/V29Sm8H0sJz1wb+4b+QcAVUOw/f12VcdGyAbjO9fw0094zr0HVzhTkqdWzpsp+0Vw6Vp1VcjDJB2MsOnfLBoI8+noAzgR6ohf92LGR58lUKbz63npsyNieDtBfDD21LKSu9RD+zAAyLmYJoYT5LL2AxOxoa75rXEuYl2uNgqhi20L/DByGoKcGyAiVayOWyhS3oZ8d6NcxhvgZ8Iw5a6b8P+lD SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR08MB2819;20:3/yVHo6x4kCOW2B0d/3bd8M1pCdKyG0sWwg52TrKGZ4nwZVy7MBfDCKXqWRvAnOwpFJA69EzvNBvD6fB3g+VnGxzG0jk68CYQUpiotlKQMznQVID1DkIthjBfm7iwnpqqVVznj16wBMTanip9ZoehP26csbonoyAwO2ZUuWWce4= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2017 09:01:54.4338 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e2241863-45fb-4540-f7d8-08d53187adfe X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2819 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/22/2017 07:44 AM, Andy Lutomirski wrote: > The cpu_entry_area will contain stacks. Make sure that KASAN has > appropriate shadow mappings for them. > > Cc: Andrey Ryabinin > Cc: Alexander Potapenko > Cc: Dmitry Vyukov > Cc: kasan-dev@googlegroups.com > Signed-off-by: Andy Lutomirski > --- > arch/x86/mm/kasan_init_64.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/mm/kasan_init_64.c b/arch/x86/mm/kasan_init_64.c > index 99dfed6dfef8..43d376687315 100644 > --- a/arch/x86/mm/kasan_init_64.c > +++ b/arch/x86/mm/kasan_init_64.c > @@ -330,7 +330,14 @@ void __init kasan_init(void) > early_pfn_to_nid(__pa(_stext))); > > kasan_populate_zero_shadow(kasan_mem_to_shadow((void *)MODULES_END), > - (void *)KASAN_SHADOW_END); > + kasan_mem_to_shadow((void *)(__fix_to_virt(FIX_CPU_ENTRY_AREA_BOTTOM)))); > + > + kasan_populate_shadow((unsigned long)kasan_mem_to_shadow((void *)(__fix_to_virt(FIX_CPU_ENTRY_AREA_BOTTOM))), > + (unsigned long)kasan_mem_to_shadow((void *)(__fix_to_virt(FIX_CPU_ENTRY_AREA_TOP) + PAGE_SIZE)), What's '+ PAGE_SIZE' for? > + 0); > + > + kasan_populate_zero_shadow(kasan_mem_to_shadow((void *)(__fix_to_virt(FIX_CPU_ENTRY_AREA_TOP) + PAGE_SIZE)), > + (void *)KASAN_SHADOW_END); > > load_cr3(init_top_pgt); > __flush_tlb_all(); >