From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751689AbdF1LNO (ORCPT ); Wed, 28 Jun 2017 07:13:14 -0400 Received: from mail-eopbgr30113.outbound.protection.outlook.com ([40.107.3.113]:54297 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751520AbdF1LNJ (ORCPT ); Wed, 28 Jun 2017 07:13:09 -0400 Authentication-Results: linutronix.de; dkim=none (message not signed) header.d=none;linutronix.de; dmarc=none action=none header.from=virtuozzo.com; Subject: Re: [PATCH] locking/atomics: don't alias ____ptr To: Dmitry Vyukov , Sebastian Andrzej Siewior Cc: Ingo Molnar , Mark Rutland , Peter Zijlstra , Will Deacon , "H. Peter Anvin" , kasan-dev , "x86@kernel.org" , LKML , Andrew Morton , "linux-mm@kvack.org" , Linus Torvalds , Thomas Gleixner References: <85d51d3551b676ba1fc40e8fbddd2eadd056d8dd.1498140838.git.dvyukov@google.com> <20170628100246.7nsvhblgi3xjbc4m@breakpoint.cc> From: Andrey Ryabinin Message-ID: <1c1cbbfb-8e34-dd33-0e73-bbb2a758e962@virtuozzo.com> Date: Wed, 28 Jun 2017 14:15:18 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.6] X-ClientProxiedBy: AM5P194CA0013.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::23) To AM4PR0801MB2721.eurprd08.prod.outlook.com (2603:10a6:200:14::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bd000c4b-ab55-48e1-017e-08d4be16a655 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506091)(300135500095);SRVR:AM4PR0801MB2721; X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;3:F6k8CAp7OazJOHPnrDmEFueqX9PYNSDQez4E65Vu8HyEhMJsekuerBIWfrfeNTovtqPEnYV8pH+1T+7cisACJwkzl5EeaCkX8bfvJdUYLla6YOk4ijF5Mu1ForAxh5WKRuQbPA7m2GaPNyna6Srp0OB2KHgGmWOlPCDTL32/vcRjVK/yU0tbPBSRLYmolYOYHLfqvhpIKLUSsTzpJOmdoKTBA9cRMYaWgPoIxRkcOWaoYd+Pr9YFAkHUgYfMdtc31+/4ZWA2uzR/CjYUuCDkFV10cTu/y6FxeU9DRQf548mYhhsqbsi0vG8nDfYzgsuI69YcwAC3jdDU4xAiFLeNoqMoNYb6ed9RkQumkRJtHnPnsluyLlIY4kkPpFs4IDL2jBC4zVnxbfcNxGaXXp1LJk/Y/LbB2cx68Mh1+XzfEbfmhwfIGG9Q9IIaMBylMdQeAMIO65Rmzf/RTQvbIH6lJf4M9aGGpHvX+UYPm8gOEJuRXmVi7HFmCVh9SKotbR2J57NRBZrrakOAhtK6ohdbrcP7jkL4gWXZJRhVQyuPmvleVnrKRtWR/qsduRGHMcucoe1kEKOYeQHhLLnA/qk3+1C3muBd8lxjpbd2DTGUhyQXJ12M2zXEfLhO5on4NxmzpeiBf/SC3y0SWx2USK6oactVUqtlU9mLEyiecnhmo8xjzcM2NgnYgugoF/IvZqzFx7ttoSmQ0WT6Ml7e/y71eQeriig2jEsSHcXPNrUgkas= X-MS-TrafficTypeDiagnostic: AM4PR0801MB2721: X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;25:tBMDXa3GtvLadP9JZdTCpGfbFbzluaAjI/Pnl/I//+e52q4KjzcmTSe6PeuatLdB7No1u8/yTVrOKiUm4Haut9NQCs98X9feeY4ajYu2znyGqvS3QMmS+PnXEbQr9wIP5X9GUiRRWsQnf7fR6CYpcxHeFn95k4OVC48ar7g5Nbr7EcE5t4+/W4Zyaz6v87GqKAsFMsJ4TJMuoIxce7UXhvAfra8LG/iD8w1m6GITWrzzdi5KUrJHT+dH0CqS2BWtjCTbUJzbOAHJrjpvgMInBe3OWqpWVayo8sUxSNQSAIQFd6a1G93ep0dy/VyuqqjRtNGGq/6GasGPIUCEFYVE01XPoAm4Le94+7TSI2KjyjlMgL+7+qvTMFCY5B7bIIrGISVutxN4mkMWW1OPyrARasMi5g78moWFLtn8w9PK7N/WnFHBQO7CyuKYeko2tkrOh7RHMIGC27toDarROVsKEur7/jmngMiaAmdHkpCVj0dXbJlWUQbd5wQEpwHVVi21aftj7zovB49woLvVep2EDi62u24MbU1LqrKlnWvu2QAm0zQxU988SOMu2qYx92QvcbHFo+pTB+RkROLzzmQiJZjrH4Wmm3ax07xdd5JVGKsSflGBHh3xK69eV3MjP35EJR0TwVWmjmw/pPqEWyeyHfkMlAT+W9YW9tX+eQtU2Pb6IlmvbXjJl2JZGxoq8XoMa1lvzWVnBM31lbTj0z9myfafJf4doa5P9fgojJZ8FFhNsDMnpFJnJFTfgC2jlcI3K05xGQvW1L7JgRqrdV+wacP2Mi30dGzHvzoytzQF8wtp+12Rjw71WHWuy30tmDVvvydTiE65kCHuhBvid0waWe5Nl+S8x96KIlq+EabrsLOEyhfj4/mVRs1Y4qkY7UjP44SVElj1FH2ZoaiS2AdkfA4M9CIjV1MFpQnGT57zRyQ= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;31:CPc4R8ht680wvsZvc/VY3yNE3xM0Z7/HO7KmdVB5JNrzdng/SXJ48kl65/QqUX310QoBtdkFZWjyUugBWv7BKT8z0c1B03B/SYPqU7wr+FVkEI9Ltb2+gkfBXbsJnq2IrIPKoN4FYmD+n6+h9JoY5rXbMhTpHmyJ8zw2yIdwcTugoLBLblThd+GQuVpBIiSLHl0zhljBmkl9mJ3UltfbsjGC5SSmUACdwMPIqjCYt+4BX5iDrAK3VzAcbcn1PG9TZEAbsOGcg8RZBTRBK1KqgQdxCoDLxuIy6UIEJ+VcjJ1Uy1x66u9B7Hlugs2Ve8+ukCRnxITsPKkVxRIQzPKaFPlhvzEDe/LL6KhA53YXmG7k9U99lDsnW0OF8YOjHzN1J3lIhdW9/FpyhcZogMp4x/DvGXUcMmNP/2JvOL886lUDuFKOggtgcLjjg5JS+Igj+6RuRTGz3NnOIq/8TXmcqIol0/U1yIuNtEcO3MwouOg2NQVhRPFiwDrj/hcUwtstm6gr/bSyzduoItF1INs0FaPwVnMyDUXWbiis8hR64WMPZ2r3t5RXIp+/KtpldsFr5J+z7vJh/kRf/5N4JytAxZgQxnTmx21cG4kUtSUSprBmusvyxnDNU+x5cQtWUtv5L8FGd0EFIdX0tqk3jA/ag6iZcw12SZ2KuWwJoM0j9NFA3VWLiKJx6Sr3p2gVACfe X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;20:YvQVPmJF52mHcvokv4G1GsLG8Co/Xmvo2n9tS4GhRuPd0sAq2hslHbRlfVFBpwgiHrbLtv1hnqAbdzCeyk6Kf80Ca93V05YSdW2y4KnmiUtLSzHgQM/D+DahJhEw5IG0doymsbe6CIju5u08FjrGm8HVkCrB5Z3dOb0QdJcZWWJw812rSQxO0UTuCJh5cdsxgdxQwRA2lDf7YyhvuXj2cBfxuKhdUVp99HsAmg1h1tVAUvplpnAVDd99Os7rvYng7hzJU5sL1wR+kBdStLL4Y7CsCBJ/d62K6ZEBb7TW+XCW4ke5WCMU/rrWhqWcjbcUdBK56I7dJSk+V68hz0fklhh27QNVg7eenTk5TYAA1jpcBehhWM6mvMT/W1Y+38MpttpCw8h4dWkRVI6P6j7nByTEjTdn6rLXRBS9qf3AzNE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750)(209349559609743); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(20161123564025)(20161123558100)(20161123562025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM4PR0801MB2721;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM4PR0801MB2721; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA4MDFNQjI3MjE7NDpCb21nbkp4OG1vYWo4TU10dWNETTd1bXd6?= =?utf-8?B?T25kM2hNbmtOSE9rNjF3dGlOMlZQUnFheGUwa0dFZHZzTEFMUDZ0ZCt5aHBX?= =?utf-8?B?c1JkaFdhaUcybHVnUDYzUy9MWndpT2IzcVZPbnByNjdHcjIreDM4akJNdGlj?= =?utf-8?B?RXQycFN6OHU4anpnZ2dyeXppN0U2MkMva2N2dE5PSEg5cXFEYXlXWHBJMUxU?= =?utf-8?B?SUtLWWRHZWsveWUzMDJqcVFhU2FydUpUTFNoQ3FYZDlNZXVxZ3JDYkxiYWsv?= =?utf-8?B?RXpSbnVydlpZRXR3R0pVeW5xYlhkNDc5ZnljS0k2S3g1eWNjcnZEK01LZzBM?= =?utf-8?B?amxId2dFT1VhUlVqb2h1SnRGT1hERUdLakh1MW84alo3RTFyOCsxV1lPN3FL?= =?utf-8?B?QjNJY3BhOHFYeFFqa2dHOENGT2U2VW9PYUhlYTVYMXRTazNUSmxNc1BIWEFY?= =?utf-8?B?YUJSOFF6MmJLcTBDckNDMk81UUxnUUtvd1B4WWR4bnd4aGRGek5HT28wZExK?= =?utf-8?B?d0NKRTR1TGxma0ZoZm90Um9GYUdwV2k2dnRqME43SmRPZy9DNy9Bd3N4STZj?= =?utf-8?B?czdUdm9XV2VlN04wNlhoNjd6UDFrN093VTk1bnNRSS9zRStDL1JlNUI3NXA1?= =?utf-8?B?Q28yclFTaERVZHU4cjRVN3N5VGtsY3NWdUwzNE05TXAydElQRFpGYzYwY3hV?= =?utf-8?B?M0t2RzVmZ3AvRnk5K3ZBU1p3T3p2eDRwdHBKbW52THExci9ycWJjQis0Z1Fa?= =?utf-8?B?cThJVTg4VzF3ekJraHdJQXBGSlYyQUZoZUpGenRNMTQ0eXhNUU10V3E4Zm9l?= =?utf-8?B?NzloVmFnYTJTTExmUUprcnowK2FHYmN3QmJLNXU1b251Q0FRZC9JTGVGY3Vh?= =?utf-8?B?Qms3QjBJSXluSHo0Ui84N2FoNGhOQ01EdHdKUzFoakNpOVVIS2NoMG5DMWd3?= =?utf-8?B?OExJNHZIdEcrQWZwV2RzUmUrbmxXSXZyY2FMZzNhR1EycElmd0sxaWVlNG0w?= =?utf-8?B?YkxMZzFZZnpPYyt2cDJIVFhtVmIyclczYk5tYmE5Y2hFU09DTGx3Wm45KzlS?= =?utf-8?B?WC9ET1ZCK05uKy9ZRkhNM1IvQlljSkMraDBKbDhtRUhIL2UyeWlVNFNwVWtu?= =?utf-8?B?dUVWK3RwUXErNHRCTE92cVVUMU9JZ2xVTi9rSHUvdEN2VXAySE03ZE9hUTJz?= =?utf-8?B?QVpFcjhucGg0WHZSQVduUjdOQkdZVW1aWlNpWThYQytORXgyS2wzYUFsZTNZ?= =?utf-8?B?M0crWUZqb21Lc1JiWHppSW01QkRPR082NUtpRWtudmVXV3RwNVpiSnNRL2xB?= =?utf-8?B?Q0VIblNOTC9WNmxDNFNJOVYwbE4rRzdIa29TRUwzTnFtd253d21PVkdDZktk?= =?utf-8?B?anJrM21iMllJR3dueXh4cmNiL1BHNkJ5aHc1d0JHNVFaanNneEwybzhxVkhY?= =?utf-8?B?UFNEMzVnRVFNZHNReUxJSWxQS3BTdzREd0lKOTBORVZWUFhON0NJMU1XbXZr?= =?utf-8?B?NEZFalJGVldlanpsNnBjck44cVUxalpBQ3ZyNFVHZkUyTWl4Z1JYZ0UwMTZN?= =?utf-8?B?Q1lCR0FUL01PMTdOYmJBdmUzZzU4eG1EcENqcE1ZK0ZFWkdXS1hIVjFsak1Q?= =?utf-8?B?MEVGL1hLenFqL0MrSUI0aGd1YmNIczI4MitDOE5sN1g4MFFPNTRUalY3QW82?= =?utf-8?Q?ye/3M81ZrtcJevkKjMc=3D?= X-Forefront-PRVS: 03524FBD26 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(39410400002)(39450400003)(39400400002)(39840400002)(377454003)(24454002)(50466002)(305945005)(81166006)(64126003)(45080400002)(478600001)(8676002)(4326008)(7416002)(50986999)(7736002)(54356999)(65826007)(230700001)(36756003)(93886004)(4001350100001)(25786009)(76176999)(229853002)(83506001)(2906002)(2950100002)(6246003)(77096006)(6486002)(42186005)(31686004)(189998001)(38730400002)(5660300001)(6666003)(53936002)(54906002)(3846002)(6116002)(33646002)(23676002)(31696002)(575784001)(86362001)(66066001)(65956001)(53546010)(47776003);DIR:OUT;SFP:1102;SCL:1;SRVR:AM4PR0801MB2721;H:[172.16.25.12];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA4MDFNQjI3MjE7MjM6dllzZlM0V3Z3QzZycEpVTHQxWGRWRGlt?= =?utf-8?B?NS9ZVFJPWjFmdmVtU0ttUHZwVUNXYXV3dDZPSkd6aUY4OXMwN2pIRWZTSmJQ?= =?utf-8?B?Z3YzYUpHblR5U3ZUNTZHLy9pdW1CZ2hLMXpoekxDRUZ6bWR6TW52RUV1Yytm?= =?utf-8?B?UDhoNFZQYjFDZDBWcG5ZTjdrT0VjUy9jQ2lHdU14SUxCaDJmZmY3RE4wRk02?= =?utf-8?B?Ly9idWJPbE1vbVBrWWNwUTlYaWNFUndHK2VyVCsxRnlldmRQMHNrcWpMblJ5?= =?utf-8?B?bXVkSE5UVzRXc21vS3JYNGNCV2U1b014TWpaaTZ5WklDS1pmNFNQL1pyTGhh?= =?utf-8?B?MWpBUjFMZ1pkTlZmSFFTZEZoc1ZmT3d0NWM1RFczUHFQT01BZDZNOFpJbVpS?= =?utf-8?B?K1JWU0Nqa05jNG9lWTF0RWpuOUNoNHNmTTdHRHFIZnJLWmlXOGs0NGRMMnh6?= =?utf-8?B?aWtsdTh4VWJJNjNNMkx3cVhERjlIZzFaVTExcW95VjNyT0FsMEJhcTBDaTk0?= =?utf-8?B?L3JVeTNrUUpncWZwRTdkeXk4aTh0dFBYQ3NOZHEyWmtDbDJMaFM1akl5cHl2?= =?utf-8?B?dXF5OEtlWkxrZy82TWRMTjNvYVc2cWpsSWYwaXJ3WDRDMUJod3RMNTdqcjgv?= =?utf-8?B?WVpaZDBvYlhvRjJMOW10L3B0UitEQkJUZXFJdVlWakt2Ymt1WVNWdEk4ZGFM?= =?utf-8?B?UkZVR3V3NHpFSXo4RmVyclNHeEZ0TVU4ek5DSTlCRFh6cXAyVUdYZEVmQ1Bo?= =?utf-8?B?R2dXUXk3L1ErUE0vMFVlcTl2ZGVFVCt4YlBSVnRITDJsY21oVk5GYUV4aTly?= =?utf-8?B?a0JSMGo5a0FPTEZiZjA5dmFCS3ZJVVVCUmdibVo0dEIwb2o3azdRMlVRSlZT?= =?utf-8?B?NTU4NWNVSWVwbVdLV3A5Q1ZrcDVlQWhmdjdJWnQ4bFBqbjJyY1RqYWRrQXVG?= =?utf-8?B?QWpHc09Mb3BQTloxenVwZmRGM0puRUNoRGVrdFFpaTJDOTBDUnQvRDN4eVgz?= =?utf-8?B?eHZjM2hqTDV4NUZJbkFacTA3QXI0aWNVSEc5d1lMa2RpV0RnS3Y1TEE5c0Qr?= =?utf-8?B?ZEM3Umo2ajR5RGxpNUE4c2d4S0lMQVJMTm1zODdLNng4OHRlN3B3RmRtc3Br?= =?utf-8?B?OENabXpqVFJsMmJIYk16MUduRXpCYmRzM3RaUG1OV2FXMlhqd3JFOHRGMkxy?= =?utf-8?B?QVY4dUZZN1h3a1FsajlWWDZ2VmtIcTltWU9ISXVENFNsSVpTaVBiUDhnYkdK?= =?utf-8?B?U2RxRldHUVd4RC9TOUVtOWtVTjRlOFNuNFgyM0l1VS9kMjhHenA3cVoyV1pk?= =?utf-8?B?ckpmUjNYaVc5Zi9pTjlic0RhcGxNV1dNSUtQeVIwaFFUMjkzN0RFRVpGU0hs?= =?utf-8?B?Ym16Rk1xb2FUYmQ1ekV2azZrcGV1cTM0bmlaNEZtTWpzeUtvd0ZaTHUvZ3ps?= =?utf-8?B?aUJ3NFZuWWtlZEYzQzZLdU9sa1J0TXVUbjJQTVhES0hyYzNORS93TW9VbTZF?= =?utf-8?B?ZnRzUWFoQkxKc0RGdkMxdFRSUndaQmFML0tudGpYL2I3YlNWOWJxMXBKMTFu?= =?utf-8?B?YWpQd2t5SWFLdW42Tjg1VFRWQkJyWUp3YUhjZi9SeFErMjR1QVlFczQ4LzVJ?= =?utf-8?B?d2Z4d3hyZWdaMGtUQ1ZqdlFqUHlIL1kzY2plWGgyVVBzamh4U2ZzUjY2em85?= =?utf-8?B?dDVsOWJVRk5BNTlSWlRnaU81Uk1PNWI2Wmg4bEtUdlRRUEZMYTdZYTJ4SDJU?= =?utf-8?B?eVJObFV2RGsyMm15S3FqRjRpVUtLZmMvTWdLWWlDd3NreVlHVEZGRlNYdFJ4?= =?utf-8?Q?bTU2ks07oYG4AMb?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTRQUjA4MDFNQjI3MjE7Njo2QkFtbG9OWHYxT2VZUzZhQXRoRDZzQVVR?= =?utf-8?B?RjJoUUY0dWNLU0xob21kblhoRmErQ1JRK21LbnJKbFBtTUtLVk5xOG1sVThj?= =?utf-8?B?bjF5YkhPMDZTNTJuaTdPeWlwQ3hQdC9aaklOazlGcFhlRWJJbmdkamxwdEY5?= =?utf-8?B?QUlqbm0vdVFwRlF1SkE3TVpFaEpWOFc4NjR0OTJqM3lvYWdXb0gxbFJqcGNX?= =?utf-8?B?b0tPcWZYUnAyZ1lKZGwraEVPWVhCRUpubjBGbFJXdVF3TkRENERhVmxxcjcw?= =?utf-8?B?S2hFRHRVUXRzNmRpbXBpMjlMdnVES0xWNWZxL25SWTVIcHJzSXl2VjBSUzZS?= =?utf-8?B?eWU4TXJJZCs4cTFlQUllbGxNZWVrSEdzU3ovMzhmT3JkME9HNmJ0NDRHVHJI?= =?utf-8?B?anhIMFJkbWNRd3JISGEraDVIY0dLUkhiejFpOWRnYnp4WElnVDR4ckV1ZGZV?= =?utf-8?B?Uk1iR1FESjYrNC9wQ0tPaExhQkgvbFpIenVUaW1nRnJyZURFQnd3TWtMWGdV?= =?utf-8?B?MUdTQ01mUFdnSmFSaTJYOGRCUmE2QlgydXFWWDFBSzlwNzhGZkNMQmNKZnZJ?= =?utf-8?B?dXU5RGFWb29tSlhaK0loNC8zbFJaV1RETHEvalEvSWc3TTRrNzVOUDM5YTBi?= =?utf-8?B?d3dlbThuMDVBbGRhZVdlTk5vWFhCSkpjTlFjNmVCa0tQeFRQZUNNb3F2aTJQ?= =?utf-8?B?WHhJclM4NzJmd2plTGd1RE1CZU8yZWhYTEhPbklEYjN6QUJNRXoxTDBaYUto?= =?utf-8?B?QVZEekRuRVNpV2owc0U4U0FtK2dxMUZ5eDhXS2RoUlhMNEoxOGJSc0w0bndp?= =?utf-8?B?czdON3pnNEJzZ25QTXZLUTNoY2N6VEUxTGJWN1E1R0REWW9pRXZ0YXRIYUND?= =?utf-8?B?L2UvdkMvOWNlNjltTHhDVGJZTGdwMSt3NEFvajBhaU9ZR1R1aFZNQWtqNjhY?= =?utf-8?B?bzN0OGxZZ0ljNXhySnF3V1VjaUU0S3loQWxhcFgyNmdLUUxKNFJCZDFIMjFN?= =?utf-8?B?REJxd2ZKeFZiVElOTG9Ub20yR0VIdVRYWUdjOTRkbTVNYklVWmhUOURRQXB6?= =?utf-8?B?QzI5UkhMd3NYa3E0Y3dGaTYvdEtOdjZsUmluTWJqUktWMmlCTlFSanVsSTRD?= =?utf-8?B?S3QvZC9tNXZ6Rml3amhnd2plbUdqQ3kvTEdVYjNwZDY3RHV0R3N2TzJJNTR2?= =?utf-8?B?OVpOMHNwWTRSeXdWNXByMXBubTI0djczREI4RTRMYWNRTklWTENqaVQ2b05W?= =?utf-8?B?d1Bvdkw4QWhYZ1d6bEZLcmhtWWtWWGRtM2NFbTY1Q0RvRUhzQ3JTRDAyYlYz?= =?utf-8?Q?qPemO4d979kQnhTgNdlqiVtoDHCJ+ckms=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;5:H1E1+jDNEahic5gPhWb9CZYK+F986zkyC9RLiJdnHL6FFicXNOPO3a2We0gbFfeUv1fSz8shskh5SDAIVc6eKlA9ixiC9awN9pvzmjeXC1h71IPtnWm3r7zjT++YyPq6U5orOgqb1y7IgLs2ZWWtgQQsttwK4D9cQ0N8Sri/y6UXyAJ68EsfEsZm6HPSt49iwvuULsTGqA3/MgIJZ6UkanaqHFFsbb2AAF3qcZ9sNFhLvXIVSC5PU7UnsioRQiOG8GnaGEhOPmm67ip5Rbt7rtAmO9onuAzjSoYuAn32hfkKpXeUm3lnFjhlyPOTRSxzI6LsosnCO+7DEEVNEMpOa9xWVTx9LmymTzwazUulvBJHFUTqoTdSYO9D3SFn3g7DLbT9tYD7TyoEQS/vEEGYSe2M7NQkms/Bk1PYAC2TaueTfi9brWRUM4t8A/4Rs672LhaX8lPHrCbZxF28vA/pGa7uq6iR8CJd6DsW42bO++XmsoBbFDvyrpE+wZ9rCVjM;24:UZOKdn+Nwt7F/FnCkex1PjYbbfK6Jshi+zv02mZNKI0L4YZGi2svdw5fJ/5GbGyxF6nmYzNMzdGfrl9Y+d9RKY6N68ICufJOXEWxxqR8S+E= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;7:MYN8AZBCDgyHTsGapKke6dQi/gbQR8hjw2tRS+C5V0Xevu5ei0FEdwWzcOCfcQ+SN09VbgD4vKtPjGFM2XNePvMI9N0Iklkr/rIYVi1oPAUZbxkpmUsdztFU87BXuLOJm1ztrri5a9gg79KLwHddBja2fS7XSOI6hVRAvIC33eANvnxX9touJU0WvgjvHUwcchfcXJoCbKJlXlh9dYsmT4x/PaVQakTItkOQ5cswfm2qg4UHIPmb6tPRNidZvdpbfR2wT9myemEe35zTroyoh09YkRVmYZetOakTgLyXmGh5NLJbigc9caiGezAuqUT607/IhZSWucz1szviaB4QayownwAhQlgtCeX6ozhW0bH/OX13nq405OwkWafb5MeZRfNIGvpcZkd7gfDew/ucTU+wtshtR3SunztLWRB6Bwyr3cYK8GuZ97tMxPCCZ4I7gYDBTaDTDl4Gw4+TszwPy2ZZjmiEfGowGaXbqYVg/Uz2PA7bqf9fpit5LM7XlhwRyh9+3AR7IZzL+pAlGI44NbxjWr6LXYotB/AfcusDI6lBK3bsqUljf25Iua7fg38RcxrSVpTpvDeZ9iKIoMUIIzIzIrKoyjqL6sGvnwJ9prigKlmMtXHDya8lm9tXaUiJKuwX20YAkgYYqcPBvSS22wniuaREhZ1vK3Mo83nuZZm+0Q8mpyXWS7DX5tPGO1kqoHReRx1bw/0n1jcirh4+88Yg1NsnHq+Or0coUQ+Or2UFvhyPbj5mysphJWddjX3Btt/8gj9Z8c4A1e0LfxwD4LadrFTZJzzM3Lb5gQ7JEr4= X-Microsoft-Exchange-Diagnostics: 1;AM4PR0801MB2721;20:xStrQmSC2Ds8blqD0pYB7ufLUyGkiRnCr3XBD+gidZOEg3SqHfVfwTgx20GraA4rNACzisyM7srpHT4yyuY++sY5HEmzxLVrgssCIBKjCFTHE1KO84UHV2SVaVZYt5stJnpKXpm6dI7Ehd5v/cgNrInr0e5Gu4Ok2dwgPMFPb+4= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2017 11:13:04.7260 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0801MB2721 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/28/2017 01:16 PM, Dmitry Vyukov wrote: > On Wed, Jun 28, 2017 at 12:02 PM, Sebastian Andrzej Siewior > wrote: >> Trying to boot tip/master resulted in: >> |DMAR: dmar0: Using Queued invalidation >> |DMAR: dmar1: Using Queued invalidation >> |DMAR: Setting RMRR: >> |DMAR: Setting identity map for device 0000:00:1a.0 [0xbdcf9000 - 0xbdd1dfff] >> |BUG: unable to handle kernel NULL pointer dereference at (null) >> |IP: __domain_mapping+0x10f/0x3d0 >> |PGD 0 >> |P4D 0 >> | >> |Oops: 0002 [#1] PREEMPT SMP >> |Modules linked in: >> |CPU: 19 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc6-00117-g235a93822a21 #113 >> |task: ffff8805271c2c80 task.stack: ffffc90000058000 >> |RIP: 0010:__domain_mapping+0x10f/0x3d0 >> |RSP: 0000:ffffc9000005bca0 EFLAGS: 00010246 >> |RAX: 0000000000000000 RBX: 00000000bdcf9003 RCX: 0000000000000000 >> |RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000001 >> |RBP: ffffc9000005bd00 R08: ffff880a243e9780 R09: ffff8805259e67c8 >> |R10: 00000000000bdcf9 R11: 0000000000000000 R12: 0000000000000025 >> |R13: 0000000000000025 R14: 0000000000000000 R15: 00000000000bdcf9 >> |FS: 0000000000000000(0000) GS:ffff88052acc0000(0000) knlGS:0000000000000000 >> |CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 >> |CR2: 0000000000000000 CR3: 0000000001c0f000 CR4: 00000000000406e0 >> |Call Trace: >> | iommu_domain_identity_map+0x5a/0x80 >> | domain_prepare_identity_map+0x9f/0x160 >> | iommu_prepare_identity_map+0x7e/0x9b >> >> bisect points to commit 235a93822a21 ("locking/atomics, asm-generic: Add KASAN >> instrumentation to atomic operations"), RIP is at >> tmp = cmpxchg64_local(&pte->val, 0ULL, pteval); >> in drivers/iommu/intel-iommu.c. The assembly for this inline assembly >> is: >> xor %edx,%edx >> xor %eax,%eax >> cmpxchg %rbx,(%rdx) >> >> and as you see edx is set to zero and used later as a pointer via the >> full register. This happens with gcc-6, 5 and 8 (snapshot from last >> week). >> After a longer while of searching and swearing I figured out that this >> bug occures once cmpxchg64_local() and cmpxchg_local() uses the same >> ____ptr macro and they are shadow somehow. What I don't know why edx is >> set to zero. >> >> Signed-off-by: Sebastian Andrzej Siewior >> --- >> include/asm-generic/atomic-instrumented.h | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) >> >> diff --git a/include/asm-generic/atomic-instrumented.h b/include/asm-generic/atomic-instrumented.h >> index a0f5b7525bb2..ac6155362b39 100644 >> --- a/include/asm-generic/atomic-instrumented.h >> +++ b/include/asm-generic/atomic-instrumented.h >> @@ -359,16 +359,16 @@ static __always_inline bool atomic64_add_negative(s64 i, atomic64_t *v) >> >> #define cmpxchg64(ptr, old, new) \ >> ({ \ >> - __typeof__(ptr) ____ptr = (ptr); \ >> - kasan_check_write(____ptr, sizeof(*____ptr)); \ >> - arch_cmpxchg64(____ptr, (old), (new)); \ >> + __typeof__(ptr) ____ptr64 = (ptr); \ >> + kasan_check_write(____ptr64, sizeof(*____ptr64));\ >> + arch_cmpxchg64(____ptr64, (old), (new)); \ >> }) >> >> #define cmpxchg64_local(ptr, old, new) \ >> ({ \ >> - __typeof__(ptr) ____ptr = (ptr); \ >> - kasan_check_write(____ptr, sizeof(*____ptr)); \ >> - arch_cmpxchg64_local(____ptr, (old), (new)); \ >> + __typeof__(ptr) ____ptr64 = (ptr); \ >> + kasan_check_write(____ptr64, sizeof(*____ptr64));\ >> + arch_cmpxchg64_local(____ptr64, (old), (new)); \ >> }) >> >> #define cmpxchg_double(p1, p2, o1, o2, n1, n2) \ > > > Doh! Thanks for fixing this. I think I've a similar crash in a > different place when I developed the patch. > The problem is that when we do: > > __typeof__(ptr) ____ptr = (ptr); \ > arch_cmpxchg64_local(____ptr, (old), (new)); \ > > We don't necessary pass value of our just declared ____ptr to > arch_cmpxchg64_local(). We just pass a symbolic identifier. So if > arch_cmpxchg64_local() declares own ____ptr and then tries to use what > we passed ("____ptr") it will actually refer to own variable declared > rather than to what we wanted to pass in. > > In my case I ended up with something like: > > __typeof__(foo) __ptr = __ptr; > > which compiler decided to turn into 0. > > Thank you, macros. > > We can add more underscores, but the problem can happen again. Should > we prefix current function/macro name to all local vars?.. > The main problem here is that arch_cmpxchg64_local() calls cmpxhg_local() instead of using arch_cmpxchg_local(). So, the patch bellow should fix the problem, also this will fix double instrumentation of cmpcxchg64[_local](). But I haven't tested this patch yet. --- arch/x86/include/asm/cmpxchg_64.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/x86/include/asm/cmpxchg_64.h b/arch/x86/include/asm/cmpxchg_64.h index fafaebacca2d..7046a3cc2493 100644 --- a/arch/x86/include/asm/cmpxchg_64.h +++ b/arch/x86/include/asm/cmpxchg_64.h @@ -9,13 +9,13 @@ static inline void set_64bit(volatile u64 *ptr, u64 val) #define arch_cmpxchg64(ptr, o, n) \ ({ \ BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ - cmpxchg((ptr), (o), (n)); \ + arch_cmpxchg((ptr), (o), (n)); \ }) #define arch_cmpxchg64_local(ptr, o, n) \ ({ \ BUILD_BUG_ON(sizeof(*(ptr)) != 8); \ - cmpxchg_local((ptr), (o), (n)); \ + arch_cmpxchg_local((ptr), (o), (n)); \ }) #define system_has_cmpxchg_double() boot_cpu_has(X86_FEATURE_CX16) -- 2.13.0