From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751669AbdA0VRw (ORCPT ); Fri, 27 Jan 2017 16:17:52 -0500 Received: from mail-db5eur01on0120.outbound.protection.outlook.com ([104.47.2.120]:27280 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751517AbdA0VRY (ORCPT ); Fri, 27 Jan 2017 16:17:24 -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: [PATCHv3 1/5] x86/mm: split arch_mmap_rnd() on compat/native versions Date: Sat, 28 Jan 2017 00:00:25 +0300 Message-ID: <20170127210029.31566-2-dsafonov@virtuozzo.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170127210029.31566-1-dsafonov@virtuozzo.com> References: <20170127210029.31566-1-dsafonov@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: VI1PR07CA0097.eurprd07.prod.outlook.com (10.165.229.151) To DB6PR0801MB1735.eurprd08.prod.outlook.com (10.169.226.150) X-MS-Office365-Filtering-Correlation-Id: 55d3843b-c9e0-47bd-6d74-08d446f78e8f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DB6PR0801MB1735; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;3:uaUPSa1bvOBXPn553j7T8KeOv9oPvLQODEg17XzbpsUquT5DJm84U8wb8Jc2oEkcNR5mU0PR82U1+i8RyWTl8PWUtg8n56MgBbaaEWh3OAy3oOyUVWabK2HF0nWqwoijWDTfr1DN2ccgAlrsnUdDrEUlzrZAHhHW2BCMoTILyG2NKejKOKGL/ugiR+wcC/X94RwQmby6NDMwcO6I0L5f/driERVztJ3+KHCUT0Z6m7tmulACoM/qkMUdJHVZfDAV3s3exWUyAX/eZB2SnQ50+g==;25:RCAhgotPErkLM/4zgfAB2UGPOfDasq1sAkE3sfIj0lVOarOCMiGYrWvTqlwvWh4GnySds6yo2gD17Wfk62+cVdmgWn5qmFCoFLEccpdOpgFPXWpA+6zF4ZOw0ieZ8GTOpDes6sSAX52Vb7m2gFZ1ScI6LMbaNYE//2UrKJilqUAx8OYDBlvTLJdl+gGWjbA2++faSrW8inktk4NyXoCb3wBU3jr8vHFfPT2TkYc47K9cRCaCpbBuyhiiULC0kfS/K5uIUL08mJMq+ytskXSZx/ViweXihZiYdwGCpJa9zx3oonJiRA1+hKAtl1bRfyfF2XKTwMCWm1vrcvzJO4LFv0rtZ4Ypk3UYt0O4CJS2exqI6ipb3uFUJ5kJexRxmo20QhhQpUENucA4BI4CkgCPBKOh6vhdLteJU3E3QeG3mrdQ0hDKdGeTRyWC11GQTI1IA5znJ0IlC582D6/JWHtneQ== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;31:UwV7sflR5bGqgrrUYPCbTZAnS4Cz1wUu54hiPLE/8Js5OFLivk/ZlfLp48019ni721FqWTrgG+4J1Kd2oTJTbBr0WEJlKAoBf8UgKoxeEUqIoJ/SJcuva6ngAiYHf0Sne9V794FIn+EfDpPx3HYgCuJ3kItpvMXCNPjBWaSLInVNdIXk/BKD5q9wve+s+cdZ7k1lKgMyMY0/Qm2OaD9dUL3QIXg5BCuKwDO1Py6qFijhd7RJYLOreOilwW9Eim9ONNTnWe8vCo47wW4iKQZSEQ==;20:T50wKq8BVkZV0tn0bV1xbteOPwKcqFP1SILDmJKapozqp+oVRyH1ZvS5ZQB0q7SHpF2HNFfcXuvrIopXXDfAPa6rupxMDd881yTv6sASSGnNLHsI1DamwjeAuQ7qDSzoIA1ZPmCJxbdBtCymYHKYtK/rsF74pzH5dVFhufSrN8T+0KBwd4Uufj4I7QvR3r6PqwvzmNA+bigHVTDqgqg1B0NN1QK+jf56eOmJZNoBCOQqjhFTpuezEmRsS8stuGdQ 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)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(6072148);SRVR:DB6PR0801MB1735;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB1735; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;4:9/wnRa/m/evNz6ChVrL78Y1Ogx/6OQ9iu1zBc66uMnGYc6Q97akito8tQZRW7rBOIuJVLmEhUnlRwEEjUaYpzMoedSJ93uLKlFI3dvAa1SDQlq9omTSvcwXEBP/hc6yh08rQaQg8Z4oX+M34Osu0nFvNmdih1ykMasZXsywN2wB1y1GGxcZR668FGGDo0aGdqGpEyC64/DTst7riFaZt6bZ93oR0oPCP5hdrTgyvBOwEmjmYInz/6Fl4woxhpmNokLsuGh7J1IR64Qt4j4CEDwWhGzSqgRsYga5/JUYn1bgQ+oO+DErcsrBMSpjp6gYu3b8rHIeU2b5wjzpwb4Ze0vID2LstGCoUo0Xe7c+8L59Td0GASRTvnhOncOyQPU2J+oXQ4fbsOFpVr/HaaKKcn6xA4IOyeS3QP7lJCbXzjM9v2w3vwzN1Dvdu/+UBT4kk4wmx5szWqxX3U/gxbJWcmpp2zgsfNNkuekbHXfrB6ExPULxFJwucOOUcjDHMz4yrMT2jp3kXLn61sO8z0UZ+G6HCS2Mi+mtBf4XFq59S/Ey9kAiQiMom/UYCizaQl/78hkMk9Ur0ncCwUIojpwEspQ== X-Forefront-PRVS: 0200DDA8BE X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(39410400002)(39450400003)(39830400002)(189002)(199003)(81156014)(8676002)(81166006)(50226002)(5660300001)(69596002)(3846002)(5003940100001)(68736007)(6116002)(38730400001)(25786008)(39060400001)(53936002)(6506006)(6512007)(6486002)(54906002)(2950100002)(6666003)(6916009)(110136003)(50466002)(48376002)(36756003)(189998001)(76176999)(50986999)(97736004)(42186005)(86362001)(101416001)(53416004)(92566002)(1076002)(4326007)(47776003)(2906002)(305945005)(7736002)(66066001)(105586002)(33646002)(106356001)(2351001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB1735;H:dsafonov.sw.ru;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB6PR0801MB1735;23:Q4/64MKCbZljbNDyTPW/fW9wKMHZhUTlXkuLlV4?= =?us-ascii?Q?LimLo4yT9Q9C1pntjH7rJsHTn5XevinAdcJutER0ET22MLRSnf5LL8mhL278?= =?us-ascii?Q?4MZw/3cDJNu4ZRhSVBasHTEr9uvRRGKv8Lev+MqktGC6jhPYyYIhB7FF3XtA?= =?us-ascii?Q?cKEbIR5QTOMVxDhnq7u40HnxU55ne1UKIFdNz5pcAtz2SC2i2sDI1X6rUohZ?= =?us-ascii?Q?dWc9yG4q0ahRGx9+wq4D2/d/TyhWdkJcdwRmFWWfcJh21cCbdRnDYyOncgqo?= =?us-ascii?Q?Z7sJl1Wgd9kvgFqSX/APfM9p/PWEPNAJKq4EyQ41vWYsNCDEDRqbFdRwAJN9?= =?us-ascii?Q?0H8IkVL/HqDQU6W2H0qI/i88gfwFrNeru0ErCoTWFTF9REGwKtBmdZyNNAQX?= =?us-ascii?Q?Byo06iA8Nv1AXPCdZ1fRiS2O+x5lfuHToQ+kEZiDVuSbVjta0jvmffK8ih8J?= =?us-ascii?Q?zTQrQ/gBwL5yyBC5r1CX92WeJGm5Jv5piOE7WoQPW54/3HHUzKySGXYrhv00?= =?us-ascii?Q?g57aZmM7vS1Xhs1hXpiUa/jbnBAZOihvyc8RCMZFqMhIwLaAMt74mS7kTaAv?= =?us-ascii?Q?oHPX6wFkEMlhDHOkBrpbuZ37300lNe8Sjeqxc5gl3mGv9IZLuKlnohBdOlqy?= =?us-ascii?Q?JdJhUl2FVXSSPv4+FRGpUtPpZO9qahn04z+gFA69+THZ/zUyd0V4AA3XvhIs?= =?us-ascii?Q?GNd9b2So9La/ZWSZ6D8gGaEjmVf1ESSRphqi/ZALDr4CdMUl82aZv8DR2ZbW?= =?us-ascii?Q?tekwd5cscjDEQbJIboQNPhVkGum1UiIyvQ4DxICXCRR88T9/kjU7mb6NWwld?= =?us-ascii?Q?czcGBuhY3zybLuEWu5NgqZhsroNQn5qCcm24sY0qjbA5gZLshHWm8rc7ur20?= =?us-ascii?Q?Xa6jd4SaT7rOYyQZj7cbhpozMOWy4C3gY8BJlAeW7H7UF0NZhJBPnQkOYMXY?= =?us-ascii?Q?MbbUsGYfxeUAFYC5z+HoavBruokZOD6qyyIUyEb5YX3l1IPF/a2S8C3qk3En?= =?us-ascii?Q?AYoMjpjLtOLUBvn/wEPvzyaLuLBGeYzpx3a13p1WQ1eE87FNKhIncbnBIKrl?= =?us-ascii?Q?qR4IL6OHdLEg7chqVh3a9fo5D2i+OWtZOqr+ShDXwuhPFIqViK0ULW+jah/l?= =?us-ascii?Q?JkSg4V9YtUUKyJK7MbKSwxaJ2j7dPnrSNkFnDFuT9ELQ+RfnEQQ2swg78ltF?= =?us-ascii?Q?Wi0XN7KPioyXx/15citoDVY/KAJWnWFk8om+XDY6KVPbwwAW/7eOuzcvbUcA?= =?us-ascii?Q?LzmffYQUSEhwNj6lDLqynnWHxoFCIYZ2FLsAeYO6f?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;6:Ycbr2/va/cr78xFPPK7wa/tkbwjo2sccTBbbBITduW5yW8D1dxKZK7K2OVy6Zm0oE8uwoR25qpERJqZtHAwGAZHCprc2W3ywr0lP98DN0/xOX7rEaBvAtcY2297xzd9W4f7GCGsTduh+fQEz9NezObMx1ErBjt18uZK08SlhHH3ipxwTGp6LvicrTiNMWq6DliEcKKhDNdDT8G9eQLYlqLRuF8ueb6Y1BuOXWFHqUrqIpvA96WVohAAVvbAnN781+F+CdNXJOaE5JyiYTM4p0DcLYj/6VMviobpZvCvbx3AZ7pEShED20O2yO8tPa8BoREu/TU4DQfbWdPFPG6wQfRo2hYYoNYqdpuo2DTkCylu4xQJPSEFdmoEat+c5nwmOEUx56p4NQ8NywL887c8eDSf4syx9WYAn/g/+zMDogm8=;5:msnYm3OHxD30DwJxutkyq4sCzHqR8o2BZZJbqdy1jNR+ALrGrqjOjSmUFOqIL1lSTBXDxt2YCQVQ/NTwZi3uSljHbwTw+cfoy2YK7MHGVSSfqe7eiye7ZDC+omQS0ukJVOdTPFTtQEYyid++q8jqJw==;24:PDH3c8B69JIsgXDFN4titHvZoxqiCteVShoNm2mf+iKNzz9zvlol92u637O6Oq8eY7cTaDGt63VGKp+KwcWm2pxBhTMMe0XK2Jd2jm5v3GE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB1735;7:4L+YOmoN3E75H+lMqzS/u3n9ZO6/z64d/xkTrBsXZ7g5MhVvBjjgbA519EGu5+Boax/CelDmyGgt4QUEu19ZJGik/jOdHueMscTJ+dXsc1MGe2DJMX1cnJcqV+hejSnYZKPoTlAcCESnhJrSXmCc7sQWUMEfPj215Md/oBTeOMUwBVaJl1uPiUCEJUtfR0hrcMQpX7awhqXxqSH5KJtcSBi72YBCH2yPAg7BdYujApx2PNPd9CzvdyIOES+KV2I3BTOqxR3xjDRKRWwJcYmJCstjcXl7UoVP8CabCHs8cco6jtAcVNGBbxehl7oooETfS7Yk+R1+gyDiiai/a/COWPz4kDs2E26fUhYFGE/ZhChbOIwEXoJjSjjau8qLoaL4qI9kLM2vmTEa3dSis3Dd4nTCgQUf2Ji6WGpXTpPbtBtF2QRGIcxC3JP2zumoKhRwDcgWaEosxOI/PBhJKPaNjQ==;20:5E8EiBBpFvD+0b39/xpdnx2MR+GvBU7/88WdaoQZXa9XF+MlQnhojuzXYe8qBCvStYaJDmSHDZIPs8i3fA0SdiLSMaWKNf9v9XfdLpR1kZ+ogwW5XY+4gbBrp380ZC76M2jE29JERVs6TJ+qsKucZ2R0QwjJSBjpGd6Rws6wsyU= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2017 21:00:41.7604 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1735 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