From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753398AbdA3MF0 (ORCPT ); Mon, 30 Jan 2017 07:05:26 -0500 Received: from mail-eopbgr40112.outbound.protection.outlook.com ([40.107.4.112]:47211 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752579AbdA3MFC (ORCPT ); Mon, 30 Jan 2017 07:05:02 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dsafonov@virtuozzo.com; From: Dmitry Safonov To: CC: <0x7f454c46@gmail.com>, Dmitry Safonov , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Andy Lutomirski , Borislav Petkov , , Subject: [PATCHv4 1/5] x86/mm: split arch_mmap_rnd() on compat/native versions Date: Mon, 30 Jan 2017 15:04:28 +0300 Message-ID: <20170130120432.6716-2-dsafonov@virtuozzo.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170130120432.6716-1-dsafonov@virtuozzo.com> References: <20170130120432.6716-1-dsafonov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: VI1P194CA0011.EURP194.PROD.OUTLOOK.COM (10.175.178.21) To HE1PR0801MB1740.eurprd08.prod.outlook.com (10.168.150.7) X-MS-Office365-Filtering-Correlation-Id: b6fdab5c-4a29-47da-507e-08d44908314b X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0801MB1740; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1740;3:w6u+CNxR9IYH6KVSX4OfpSrJD/TFjX+F/KRy6rjPioRGl6KnrnmrjwYw0I5ngb0WBWfcPSk+uNcBJol0NY8SbBsSVTYBtyWorR2OpwByu9uaEo5PA7msFdqdAl7CksGxPPj1vnwSSopW+O7QUhzYgtWRh8SGAcPDz+M9ktX0LkHX0UQoy7bM/Wqvt+e1Qv9koUVcO4Bvdh4Uig9fCf/mW/cxXReMwAgLhfSYwJOsmONwlA4mdVuSILMRx0VSox1MTom4NEbCYEsu69BqHwsMSA== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1740;25:4l4u/2zYni+Lj0TkruOk731kFW2GBSBubQshfp3EBxwrqtocGk5Rmgo97v02iTHOOKNVGKApGwlqUCCMfBIhOOydvfwdx4Ox2IaKLVNTLo+PCPLD0nrIxLX9oX+65FHqy2eI2LwlJT2vj77usw05fD/ZM99FzYOyqZuotTvy3yNLJnotk/oEgxxNwcNhdRzTt8ZS6Kr/jDNhvH1xgVo5KrVFPASwuKPLuwku/WB3NkJBzqA80/B+4JeKhTbCwmGYsNifywsuzT9zwq+tlAwXw6a/OtH4u5KrhP/yLQCgzYX5vZPmei89PyMfMytNR7m2jQdBDQnV8AoxJ7cbX262MtNAnKcv7ATFYUqx/m0YST/dk6DUFZeDKYtx8EJD8S+ETzggnDCiEgvnlwjOiFwSDZZWAHCm0wXjegyPnz6QjY04sPM3qcB/KdK+ZrenG7g8uEQhK+9bXdndza8PL6jO3vmLzQz4NSbVNzoZb3KKrru40gxj9V4ejqm9WdVA1gxUwNuDc/CgyBjxBNzJUZiD37YtUuvYgh6nsbSlQaM6o+LgM/ItNTj/1nrjmIvLcpblUiJNecKkUpI98VQlVuxRelIp9oo1jv5bRBOemncheo1cxXVJ6IlH/UcSg7vBFmAOL/r8w0DwhUR3Ii2Cc+nAWifPZxZ+EeZz0YgTzNM+5EGBdHcnDZ0Q06vDCOKTuO2DnMKqjoC2ZSvaU54/X2u2Qg== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1740;31:j2+DtQ6IoLLo/ON5O2HvUHTA/yLW3EpsNo3mFBqW4auIa8n5yfxLzvsQ0TRxngFvDmxlQlqD7OpWicLuoKwL2ue13y6HU1EkDx3kuU5Fcn3+zSPShPE5+8FUuRFuxs3WOZda7twBBNpyU8qG+y0ZwEB6JHd1vnxicNRrvwFXrVjhF62Bb+KWXx9pPTBmzs0MjiQh5CvL+itxy52ZHVBLYgXAugV6zT5iTxfAKz+08nikGBaX6lO498U1NIMcW9Ic;20:QJ32aoiOVY8ZVEWPmsVC0YIkQ70OUpW+Pdhn00AUiLqMRqPGXevQBaJuxlJs1fSSHodBJFmHJCqdfRojtjxCRfAvDhp+C/H+zxfx4s3zktDPtDrlMc2hDtYBOeeBe4rofsx/9Uk8C918K+waMELJbrhm7IqvCzQK4qfOf13MwG9ufqJCi5hehdIwI6HJ4QItmi31yAHlJEPX+YtUv6z5ByuMP6wjeTdIT/IcR2nY9puND3mORjnMswSvcUOn1mm7 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123564025)(20161123555025)(20161123562025)(20161123560025)(20161123558021)(6072148);SRVR:HE1PR0801MB1740;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1740; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1740;4:SzlB2f/KymC9oLw4TMVEO27036XwqmrTjFpX656aya1uNxQjyDz21zaEQHMLcK1hlt2B69jHospJTtvQLfpjmcQ6j6dCPPDrqO2289rnHwdT67dcb7eYYjYjhG0gVBQeiamlsT9v4+Igm+6g/Fq9v6LeX0KTWdMQGVaMON+y1uTh3rAsqLQD31isPErNT1IflYOM2rufK75UxAlhltlGVlCnhQNzb35I8aQ77INmZQxIGBt/O7si9CyUPBzfc8Xe0A30MLZjVHo7IfmB8BN4AtbIG7bkU4THd0tvZX0+nLEnhRlH10lRCHlp8lcENjpsBQy+1VWBh0wg9CjJVaVGXUiCKjWJN+CXCntTUK4t4zxLF+/j2zk46nXcnWOh86x56R2I/8uRsjCVdm6kpM7kDjZxD9Uw0JVRz/imXFGQGVPZk2BD11DeA8oZtbAq2L22kd/RUm9YiLfoZpMdcYHoty17HPdq4ueld/w0kQplxdZWwN8II3YdehcwCu8UjWV1PkhE0RT3cTxdDZlFrfytn1EQBQA183iDkaG5Co57txBJrLU1nMM6gtHObXoLoN2FuXKTxOHFiwWzbgPJChjGV2yxNpVzE5K+XPOuySoYt44= X-Forefront-PRVS: 0203C93D51 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(39450400003)(199003)(189002)(7736002)(92566002)(189998001)(110136003)(53936002)(33646002)(4326007)(39060400001)(1076002)(53416004)(38730400001)(68736007)(97736004)(5003940100001)(6486002)(8676002)(305945005)(2906002)(6666003)(105586002)(50466002)(6506006)(6916009)(2950100002)(48376002)(106356001)(69596002)(86362001)(50986999)(47776003)(54906002)(6512007)(36756003)(76176999)(66066001)(2351001)(42186005)(81166006)(3846002)(6116002)(81156014)(25786008)(50226002)(101416001)(5660300001);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1740;H:dsafonov.sw.ru;FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0801MB1740;23:icCYu8EoBehqc+2wxRXNo7iVsQuTFqEDo2wSNwu?= =?us-ascii?Q?EUgGcd1V9A02dL5KQrGQbzs/g3EjaxiVJH+CQPJGTG5+ljVvKs+VtsjEm2ED?= =?us-ascii?Q?oL3J1ME0VYrF2SZaF8nvsvvsMlxOM9t+gxqBKSPTsFSVVftL+KNzkDfTJV5g?= =?us-ascii?Q?x4yeVXmYSAhM0OMsrpuMIwBcZjC9PKbYybRLILTpOWZ/Trpl1KK2P+qv7Sd9?= =?us-ascii?Q?UJjZCIgEa4JFo9I4I20jkViWD9ZlGHq0qPgq5s0sm556Rf+sfLE3NcXpe9Dp?= =?us-ascii?Q?89wXDNun+lO0K55IcuZ3zuUnrMQXbh3i162yjgX4uwu3haTyKZavBY3Q65od?= =?us-ascii?Q?f1fG8amrvQhPLQw6zx3EUYt4o8u5wlUQEyeoLhPrWdmnPegSoScBvPgm9ffV?= =?us-ascii?Q?z8kpfBpNWasmu1YUOZGz5H9TdNgNxECChGMyvMdsCDbadBg/SKXYs/WV4UQK?= =?us-ascii?Q?BJ8F7Zz345X7ZuDTeh395NwS8++7UFyvH4+Cl7M1uwKSN2jF+Lua0DwBLCTn?= =?us-ascii?Q?G6RKd3e1w2t4QUqFXPk+hI++LoxC2cFbR1TUTliiIRNwS4l2lQGZPU8BVihe?= =?us-ascii?Q?bpNID9wK+RSKBI0K8F4LjaqOIp9MLAKGgnjz1LwO57GKdCY/8nRGHGoa/+X0?= =?us-ascii?Q?jwvFkqNXYfQ/SwWnKrEjtnGaWilB3NOIkhm6TA2Ed2RyqQ8QvcUtb/IE15Eq?= =?us-ascii?Q?UuZ/RWIvn6pk5dhzjALZ1XgXskgMQgWRBphtyHCWT5s1pudsCnDStsfzkIno?= =?us-ascii?Q?DYJqYGC01OrynEVtXxLX8JqrHAbO22K4fPmkSsk2m6XL36sPaVzvZoJhiwks?= =?us-ascii?Q?mkU9e+VEaR9NwgL26MFPpWtGM9/pb9ZoDIeZEjPuxUy46gvS/NTv5UgFVWih?= =?us-ascii?Q?+WYt+DdY1Hrb9300tVwISd08nHyLDk48p+l36ftNFUOtVnNrhtQHljh1E3PF?= =?us-ascii?Q?2ELSkkx0cOoA4VmQL4/kGbe2g4GbiwNyq/nqxl1szardSQGckWbAvyI+Pqn4?= =?us-ascii?Q?QVWGkAXqZk3lc/WBVcztyo1YQiI1mwrMpUPsdyOhOYEHExipFuFtGZXz7KFM?= =?us-ascii?Q?/gazAdQiLUiBiH+jv1G9Gx9kCLEiNmIjboW6CYgW5lUUC3s1zleDfyiDCiCJ?= =?us-ascii?Q?m8XCPEVoBc2wP/ixiPIVJkD3OrEL5zf02JM5gc4gHHqBtrzRkVTmRcGryPer?= =?us-ascii?Q?Wf0PTnFdnupfCMTsjCahLwVfCZ4dJWjr2Vmd0cE9fL8he4JTy5S7cDEw5zA?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1740;6:vprv43Nso41XTaLjUZsjrt4U25tBdu1jjAKOWch8+I3UCHrxiVJUrH2+jytgNlKTPEf/vfFE4Np1h/LeiyfK4PzRCpiyO3nSKuujW9c37DGhUgsNbiCBi91lMXYSyMrIk897EEQiuQO0+L3IXcJEiPHGS0fmCBT9gEnPzHd7Pvf4O3xyURdnwNSSZbB6b2TFQewem77Izp0N7Pz47tyDuCia3iBDK0F+vBMqwlCKP5A2kL9vXEnt41sO3u2AdWQuUMDFv1c43LlT7FtqtgcZzOojVVKef0ZuEmGX9Mm4TnTP21i6wudAREVrJHPk36T5rAw3IZSDyPEkPQ3eeZ0ghjptodB5IBL9Rv6l/YwOgfFJWqgdFx7hQWQLCODQIvVCKYohX1o7yc7eX3Dmfv6wf/Zwlx1YXJMq/4axrgoZfcE=;5:3RXwMntueWp5anc27hrnJLiNcNBccbAadcgNJEgOLLrmpYmGOaIInjHVo7106yxvhCsZVxT9v4UOcS/n6iBS9/VNDBuE7B8c7zsXHyZGOiRycWJY1VIUdzqw6DGdVlvjK3KSZ8GrPxKMceNgSiKaX5CMxl62yFiXstUDxsHjP6A=;24:pavmVxE9hpVzXOI4U7mFecmL+GWKueriLcMW5qs7JCHVCoL+7Dj4wmbV8Xt9BYi9ay2AP7F0RY9OkMULeHhxVh2ezWfg0y5MjQTETIUnH9Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1740;7:HIZDRF65OE9CTLDns7OhHgt0Nod7HRhG84w0xB2br+onmtwAZ3VdCPvvMhsjVlJWDU+iUb/MwJg/SdhdeB5jOkcmPqflDTS1dC9Sqtpt4ewa2CZ10FbaDA9VvrmHmHpyROKnAb5dljobx9tHWNM3HHyNs5vKzxbZB6oVlmoaoy9dMsUmZTciD9GzNfzWUBicoB4SVheLK8j/xxSilhs6N5ZePQifsU4QLZUw4454X8pqBCDyUfxVLvtDMobLxrDo4EGPyPdhlFzZ8oCwVLSbnXlVdXzPomNEORRQYZRzN+aDlGK7PHftFL5DhJibXchfkNBI1J2UMMO/6rCaV7kr4MujPabL53nDA1/n+kI1DSYlsv1VzXtjjOLoTAUkKlQPiC0YPr4sbV0bq0RkYA3EYUgKEzQ2PwLngbORPvfdBbJz2OPaNoFplAEE3xX6eeN16aQCMFqYW4ywde7Lc7YJKg==;20:Uq9HDyjV68DlS/FVVugBQp8diWrADdfWtE7XFTia8brnJCIvrwuTVysDvfWLOIMJ58Mz5piXWc+ld7aTXcC8d6vZullbOfpyaADhqdJS5NJs04Bn4ELRBsHOBgJ9GK+fHUNNed9KnSdkzrs3BFmZUrrXZp2boEGaVy9tinxG+hU= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2017 12:04:49.0078 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1740 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I need those arch_{native,compat}_rnd() to compute separately random factor for mmap() in compat syscalls for 64-bit binaries and vice-versa for native syscall in 32-bit compat binaries. They will be used in the following patches. Signed-off-by: Dmitry Safonov --- arch/x86/mm/mmap.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c index d2dc0438d654..42063e787717 100644 --- a/arch/x86/mm/mmap.c +++ b/arch/x86/mm/mmap.c @@ -65,20 +65,27 @@ static int mmap_is_legacy(void) return sysctl_legacy_va_layout; } -unsigned long arch_mmap_rnd(void) +#ifdef CONFIG_COMPAT +static unsigned long arch_compat_rnd(void) { - unsigned long rnd; + return (get_random_long() & ((1UL << mmap_rnd_compat_bits) - 1)) + << PAGE_SHIFT; +} +#endif - if (mmap_is_ia32()) +static unsigned long arch_native_rnd(void) +{ + return (get_random_long() & ((1UL << mmap_rnd_bits) - 1)) << PAGE_SHIFT; +} + +unsigned long arch_mmap_rnd(void) +{ #ifdef CONFIG_COMPAT - rnd = get_random_long() & ((1UL << mmap_rnd_compat_bits) - 1); -#else - rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); + if (mmap_is_ia32()) + return arch_compat_rnd(); #endif - else - rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); - return rnd << PAGE_SHIFT; + return arch_native_rnd(); } static unsigned long mmap_base(unsigned long rnd) -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot0-f200.google.com (mail-ot0-f200.google.com [74.125.82.200]) by kanga.kvack.org (Postfix) with ESMTP id 950806B025E for ; Mon, 30 Jan 2017 07:04:54 -0500 (EST) Received: by mail-ot0-f200.google.com with SMTP id g13so287367080otd.5 for ; Mon, 30 Jan 2017 04:04:54 -0800 (PST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40109.outbound.protection.outlook.com. [40.107.4.109]) by mx.google.com with ESMTPS id r188si5335530oib.142.2017.01.30.04.04.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 30 Jan 2017 04:04:53 -0800 (PST) From: Dmitry Safonov Subject: [PATCHv4 1/5] x86/mm: split arch_mmap_rnd() on compat/native versions Date: Mon, 30 Jan 2017 15:04:28 +0300 Message-ID: <20170130120432.6716-2-dsafonov@virtuozzo.com> In-Reply-To: <20170130120432.6716-1-dsafonov@virtuozzo.com> References: <20170130120432.6716-1-dsafonov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain Sender: owner-linux-mm@kvack.org List-ID: To: linux-kernel@vger.kernel.org Cc: 0x7f454c46@gmail.com, Dmitry Safonov , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Andy Lutomirski , Borislav Petkov , x86@kernel.org, linux-mm@kvack.org I need those arch_{native,compat}_rnd() to compute separately random factor for mmap() in compat syscalls for 64-bit binaries and vice-versa for native syscall in 32-bit compat binaries. They will be used in the following patches. Signed-off-by: Dmitry Safonov --- arch/x86/mm/mmap.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c index d2dc0438d654..42063e787717 100644 --- a/arch/x86/mm/mmap.c +++ b/arch/x86/mm/mmap.c @@ -65,20 +65,27 @@ static int mmap_is_legacy(void) return sysctl_legacy_va_layout; } -unsigned long arch_mmap_rnd(void) +#ifdef CONFIG_COMPAT +static unsigned long arch_compat_rnd(void) { - unsigned long rnd; + return (get_random_long() & ((1UL << mmap_rnd_compat_bits) - 1)) + << PAGE_SHIFT; +} +#endif - if (mmap_is_ia32()) +static unsigned long arch_native_rnd(void) +{ + return (get_random_long() & ((1UL << mmap_rnd_bits) - 1)) << PAGE_SHIFT; +} + +unsigned long arch_mmap_rnd(void) +{ #ifdef CONFIG_COMPAT - rnd = get_random_long() & ((1UL << mmap_rnd_compat_bits) - 1); -#else - rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); + if (mmap_is_ia32()) + return arch_compat_rnd(); #endif - else - rnd = get_random_long() & ((1UL << mmap_rnd_bits) - 1); - return rnd << PAGE_SHIFT; + return arch_native_rnd(); } static unsigned long mmap_base(unsigned long rnd) -- 2.11.0 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org