From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751289AbdBOOSy (ORCPT ); Wed, 15 Feb 2017 09:18:54 -0500 Received: from mail-ve1eur01on0111.outbound.protection.outlook.com ([104.47.1.111]:11084 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750760AbdBOOSw (ORCPT ); Wed, 15 Feb 2017 09:18:52 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [RFC] kasan stack overflow warnings again: READ_ONCE(), typecheck() To: Arnd Bergmann , Dmitry Vyukov References: <1745339.Zp71hEDpdI@wuerfel> <36862803-f365-6ab4-198e-e858f41ee914@virtuozzo.com> CC: "kasan-dev@googlegroups.com" , Alexander Potapenko , , Christian Borntraeger From: Andrey Ryabinin Message-ID: Date: Wed, 15 Feb 2017 17:19:49 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <36862803-f365-6ab4-198e-e858f41ee914@virtuozzo.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5PR0101CA0015.eurprd01.prod.exchangelabs.com (10.169.240.25) To DB6PR0801MB2056.eurprd08.prod.outlook.com (10.168.86.137) X-MS-Office365-Filtering-Correlation-Id: 41942361-4019-4a62-c3ed-08d455ad8f88 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DB6PR0801MB2056; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2056;3:yorrcY3WpzParU5CBm7RcnQdcZnxmWIOD6FoS2Ezz/IxfD8R2kzST/OvMyPGS6ARu8nL1v7JItSaNtajrDM29n/yTWoPR+XvjAXxvWf+TAy2pFQr6AL8dtJT8V1ZuQ1bLc8FyiySLc1sgxsAtQaykTWoh5fZELjgkJj0JC1sQwHBfCimL53ZRpBHCnCT/8j/mUa4cFKA2uCtaSi84ofhue5BfgJQXzB84KYWEn1jRiyUSyd22EPx3whx+YJPD2IBMy9FH3DLrYIlU5iTQi3ibA==;25:EtSnzDkqtOqOgyXRbFAfLh3wkZCvhD7ZOCYlyViq+5QY2GjB4+VUtOt4zWt+30K/XvWTcJn4YGsr/tX2EgbxBbN4atznA2VAdDN3H9M7QamlomLHMo856L9xTMsOsPvajJ6wfqyNiHFzZDRHoDUkNr1NoDcLfBv+qMsY8sWDE23XvtJ4EhcXeRyjb1r6PNnBXqc5hCwxgQKX+GmOmS/2U8R3u0tsD/UsTuzr6eXPTYc1dV6Y1KkSLSSCK2Nwj1FVuYqgVHH6bKfzoIYpetCjsBsdMW8Zmd3N5bNX8SyORYlLqmy7zHZNcnYaQDMqlcAp1rlNC5cgE6T1hMNtHUuMvXwm+1X7loQBPF8L/APRG2NePJEE3cIMr7aIPJeZZaqUNzqBiAfcal334pp4d29Fznt++mVeGcAlzaMm01dWiHJ7BA1TzKahnh9Ehu3dyYJpZFAJsHEFbOikRGGPMMhlhg== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2056;31:iJ2nWyCvJhl9eOQ1gC+V7NDQzaJQgaQ2ovRqe2rGZnnG26h2IjQt6ruaCo56LxlRekxWkF023mAgsuHZGy4cQ1RPTXIOWYnOPyg6TpHQVpod03kflxJK91ZJy6d50e8y3WiPHGBJsaiNTpkVB0Ju53ecnfJS/ukNjfWdDsln2nZfe53pkwiHKKDYIIl+F9pW75xXDZu8SJtmDtiwMcpEhp/rDsvxIr6Viu/hP/495+EPCQR1JZBH/44XKMS6P8RRnCCEY+/+LahhwYm+2BOeLUReSg+9DmnPdpb/jNPQvsM=;20:mjn9S1+2TQ2fE5j49oy3axAc8EfnA4XtUyYRo7AME8qsgbiWPqbud7Mby/QmG5x506JdkdN8hxW8oSUq00Zz+cDiFoftWyvisFiQ2HxgHhLPZOPmfs0efEA/YN9oqx69zsUvp3e4HWCsBTokrGXNAB4tVZlaI10UP+peJXsxt5h8Ts7NTKqO6VbTI9l2lgAebdeookWA5z5hKEw2sHuqjMip4ept/Q9RNITemEH/Y+hQ/Ix8yTlch904ieNc2/S9BX4AMdthMahuDbKU6TmuwLzfqoc7fvUHDo9sOPhSlleMuAlfTjCo1BFqV4Q7Pon8Zq9sztvPRWmCaC9E6EYSP3STI1E+UcgeeAa2qEzcRyiYMs0lbdsN/BPSFJD9SWSSgeWF2tcWsOhYlZVuxVhl8totI6jcYHRw5z3REekaLFI= 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)(3002001)(10201501046)(6041248)(20161123560025)(20161123558025)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:DB6PR0801MB2056;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB2056; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2056;4:ySxO+eDUlPu9AuBP1Glisddg3YZAF3FJf8iAq+92IeVVMqRJh1jFg1pywkSqbx0VM1bdcvUjq8WsLRiMA7WdzRovBEPrBk0f7+7rxNdwNPibE44HdoCkIQwDn2Xj4nT9j6Ow9ljbg4s8MPBsyP6WUTpSZrV7Hiy49vaR6mGbEXPkZOZq7fLELtER00HmnyIeUMfKo/+XH0DzQs/cTAsyNR3k2qzc5YcLPsq1mb29CxNQL5FBYd9637fe+6o/I0xw9RMrZcoBxnPl82psz4uN/VH2F+KTQgYQnM5cq3VlCutMu6wC4H/zk0hjvd/2IxwdTsVa9d5Aa2nn9H2mrlbn86OfeXNBHzCZ+qL6Kn/iffY9jbaDmvqnzP6g6B+J5CYo6OCKBO1ZG2xRXzYFF65jns+KWqwFiCGVhIFWwPOoKGbA/MMnOGs/fJrwV8n9HJvBah3swJejsu9QZzhX38dJe3Dngsartp3Vnq+J1ANAgYt5BRPZxcgRAjjsiGB9nBRhuBtyJfxS7txc8Y9WG8DZIxvDjGy99GUDn2oQGlWe6bhyStbSpn6jxEFle47J6N0LE9IRejr89/OfLuJFt9jns7c1CAMU1vG1UEfBNQ7eg60= X-Forefront-PRVS: 021975AE46 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(39830400002)(39410400002)(39450400003)(24454002)(199003)(377454003)(189002)(86362001)(38730400002)(92566002)(81166006)(36756003)(106356001)(81156014)(90366009)(31696002)(8676002)(3846002)(7736002)(6116002)(389900002)(25786008)(305945005)(53546003)(68736007)(6246003)(64126003)(101416001)(33646002)(83506001)(105586002)(2950100002)(50466002)(6486002)(5660300001)(4326007)(77096006)(54906002)(2906002)(229853002)(42186005)(31686004)(53936002)(97736004)(4001350100001)(23746002)(65826007)(65806001)(230700001)(47776003)(50986999)(66066001)(54356999)(65956001)(76176999)(189998001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB2056;H:[172.16.25.12];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;DB6PR0801MB2056;23:xuWzIcJi7Zu0dTW+ZFaah+SYNFt/A/nQZMs?= =?Windows-1252?Q?bAqWIIf6oPn/ajmtM2A4JagweSIDVRsPTamTgCQ0MiRaOKSRAg2oEdqn?= =?Windows-1252?Q?opbE9VtiP4X256AuE8y18ACxkIEU42MzhOrOq8iTJ2l6+fWTOwUqcUkX?= =?Windows-1252?Q?+P+HGfk5ze2Q+UKvVeCn/YIyWYRlyxQNNttziVO13Mt3YUuuFlQNSomL?= =?Windows-1252?Q?oQLknmqjycxZm0au/8gdLypLncF/Xmzndo58U6GK+QzX7bXs8zlKkhor?= =?Windows-1252?Q?1xte2DQUh0UJSRKLahLRMlK0PzeMYdOKSH+6au7XJWJ7A3aOpgd/5s51?= =?Windows-1252?Q?okj6Pekpwg96nEkCFZDtBDhmNGNCk2NiSfkxtaXmD0hZ54t7BDvRklgL?= =?Windows-1252?Q?rJKUiKa3j3vB3+VOc5GVWe764++rSAJUeA3czs+8oFlktk4BMTy0plxw?= =?Windows-1252?Q?ZuiTtBBZCNSdS30k9sDac3z8Tye6RfEGefUYn3KxDjV/rUjIuzwdmAzm?= =?Windows-1252?Q?vD5Spiluhgn22NekZ3P39NtUmHInB7Id5wwmZS/bCK3huJaMYmM+OoCx?= =?Windows-1252?Q?+FTm17QSyqzh8EcY9n1zLXDC2fKZ4Zc54jkbvx98Ll24F0grIpGiIeBG?= =?Windows-1252?Q?t1o2NRwzsTMqFMWIDJcRGA62/0h1WvQYyE3Y0bo0zjHMYhhpzv9X5fH7?= =?Windows-1252?Q?7mCcHC4CxThVjRFvO3oB6V1fPn7ZGZqejIzXbs0ruI1kuZ4SRvXdl+43?= =?Windows-1252?Q?YbpPgyyTs3bZfpMBN9tmwnPZPqe+/YUpao7lQF6UJ6iBzDclNipFMb6B?= =?Windows-1252?Q?ZDTF83pSOmcj6WER/I+dytKwd5/Cgji3pacSogpe8CIb/3GEE6RnFHv3?= =?Windows-1252?Q?uf0wGSnT0L//b1U9EQmnUxUrshVtPJkJ3Qh2rSinRnSEUQEtHa/Ph+Tv?= =?Windows-1252?Q?cNyfthdL6pRqVaC0YfHWywXS6qPQhTHolVbotEH+3AR5dFHNA/tx0hGx?= =?Windows-1252?Q?imn1r101+9LkdYUTzYgOnsoXEIH/7I6iDHCuFBYYYXVWzqASHoqSqgZT?= =?Windows-1252?Q?LnNi8NktXd9sjyr/1AXDbjBdmgmuInRE/j0LBqKO/s73v5jRAWfdy3o9?= =?Windows-1252?Q?mPruQ0v/615TXlggjx3RYa7z4keXxd5/pwRMmUGaCPoOIZH5qjlPPKly?= =?Windows-1252?Q?m7e2sieJMPc0ool4PjJnCm74hB9bcltJQBt+qop1cXoS3vEeSf26HJPV?= =?Windows-1252?Q?r3Zv9HGgZy08cFt9NZovG5lRASUKq7hXTc+GgBxX8ikMWZTEfrqhLT63?= =?Windows-1252?Q?/GNKebdMdNy6D8mAFxUsPtjKobJ4i7tj822xr0dXQWQnF+XNZUNtdCUg?= =?Windows-1252?Q?MLwkoAorKH7nHma2IiREL8gJi8ac7uavPJdgRSoTHSlpwXthZVarc7Ka?= =?Windows-1252?Q?FHegQPE5QgT+V7tN5RPmVSDscBfshJqVVsW6f5omN6c+i2CMlIwr/l54?= =?Windows-1252?Q?gbWCgjqcwAWWfv8uvI/ENSTmHTvsXKw3u8jHXryeZC0aeNdrCF6sBwao?= =?Windows-1252?Q?t+VV94MQa0i8n794=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2056;6:vQQr3aRqrvrLW3GZCyUFOGj2GszeqlkCl+nNTNawhcs4ZTNeSF3L/FBbo/u+WpAN5vGSvel0scuCGaV5IIYMXY1mQHSlFQSTCO2Dmn0SF+9QA6dAcJkflPCmyusSMaszH7cudSZD5/NKQe+3dY3XPrpypQbaKkPIOL8LsALtPleEydbupxmKUovtM7/z8Kd9T+PVgsFTOrLiyDZT6JDeEm5txKNN5LL/plzOaPdLjNr3DhobknZAKxheNOh6TpOZNma+0lczHPH8xGTfX6V9CPmIJYNxxu6N8MBEULLyCcA8HYuPja8roBheNOZYtLRd3eZ951qX4kt1Z4zSvgPLq0zvYhGEJS1GySs8/pIcATFKDJUozeFV1xPCtbMlJcxzi6U2O6At1oVwR1EY6qKlSQ==;5:WOPZpQEFsFULPH8rITM6CwQFtdX5aSzMqxtHQAt/MKHRXiCYkBzQjxP8eoxBOGVjzXkM/xAgmxSUGGrxmZKLlbPXEAosg7UTPqy4RWFL4MRCJtMijiCWSRym/jSYKcCt+OeLNo6rrA5Qzda/IwLp9Q==;24:VhYh+c0Y890h4QcN7BYbqOND1fYNnCVGDSYcsJ+V8GgaTbF9NtDz+2ti7YWzcEYj6drnjU21h8BB+h8qpXSd92GlP69EYa/ywNmfiIpE7E4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2056;7:pPJqixrng6/f9MKK0UIc3JbbQLOvUybGER2sL/zlimw2ujYTkQ29fHEyuaVVucg+XNhmJOgvQyATz+FJ1C0B5K0hMt8wa/29cSCqmy8ugAS+huE9b4h/tlOX2WU+7PyU79/yPgVozLk+z0va8tfGJa1tdkIS4HIDDxkD9AIAKkOMdx7UxHlg17rFf2F4GJabFhkzzsBAm0NSWm7q+NRYOrRYdjhKSjtGvjdfl7rZ2DUEhmB9JpgggpiEKRteLR0KQCQi3d3DZOvDf4FbxGCnWtenK1+gLyOqQFSVN3rgC3EWAnshRnE6k+O07vMT6PFE+mCIBw7oqhopIFqjUNo82BDHZE+XHUecV00wUrDJ4XIqfBDs9U9OlVh1uTKhK5yNCSeOhypgVmUAaP2+s8QQo4sqCek3Bezxfov+UDmlIHTgNOsZqFwIZEbUdmwKR6Uj4T7HFPyOgMaUYmRb4UzfoAZ1PyeaBhpVqeazT45+6BN6J5du8T509M1VlHLdGHYnflSGQRw7EDsWxX+tApBhVg==;20:DIaWXSu5r/FWMZd3v4/ddBRXyQy4lKQy11BwzW+Y5dSGUW4Cos/hmhtrxexu5fIrMXZFd7fUE1h9TKIcoz5AcsFBCFc7zZcwJtmE1ryRvGnRN3u4mFJ4D3qL/NkwQTAgZ38UWlPwlTbX6veVK/3RBk2tORzdWeks9pQUzgRbqbc= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2017 14:18:47.0042 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB2056 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/15/2017 05:06 PM, Andrey Ryabinin wrote: > diff --git a/include/linux/compiler.h b/include/linux/compiler.h > index 10bca12..5d9dd63 100644 > --- a/include/linux/compiler.h > +++ b/include/linux/compiler.h > @@ -301,10 +301,10 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s > */ > > #define __READ_ONCE(x, check) \ > - __builtin_choose_expr(sizeof(x) == 1, *(volatile typeof(&(x)))&(x), \ > - __builtin_choose_expr(sizeof(x) == 2, *(volatile typeof(&(x)))&(x), \ > - __builtin_choose_expr(sizeof(x) == 4, *(volatile typeof(&(x)))&(x), \ > - __builtin_choose_expr(sizeof(x) == sizeof(long), *(volatile typeof(&(x)))&(x), \ > + __builtin_choose_expr(sizeof(x) == 1, (typeof(x))(__u64)*(volatile __u8 *)&(x), \ > + __builtin_choose_expr(sizeof(x) == 2, (typeof(x))(__u64)*(volatile __u16 *)&(x), \ > + __builtin_choose_expr(sizeof(x) == 4, (typeof(x))(__u64)*(volatile __u32 *)&(x), \ > + __builtin_choose_expr(sizeof(x) == 8, (typeof(x))(__u64)*(volatile __u64 *)&(x), \ > ({union { typeof(x) __val; char __c[1]; } __u; \ > if (check) \ > __read_once_size(&(x), __u.__c, sizeof(x)); \ Scratch this, it doesn't work: ../arch/x86/mm/gup.c:20:2: error: conversion to non-scalar type requested return READ_ONCE(*ptep); ^