From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752295AbcLCHle (ORCPT ); Sat, 3 Dec 2016 02:41:34 -0500 Received: from mail-db5eur01on0099.outbound.protection.outlook.com ([104.47.2.99]:47697 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751226AbcLCHlb (ORCPT ); Sat, 3 Dec 2016 02:41:31 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=aryabinin@virtuozzo.com; Subject: Re: [PATCH v4] x86/suspend: fix false positive KASAN warning on suspend/resume To: Josh Poimboeuf References: <20161201173438.bfe5eq23i6ezfxsq@treble> <20161201175611.gf63mwzomt4wrlxy@treble> <20161201203154.mwt5x736g7z6jh3o@treble> <5144d695-7ac4-f992-5239-91c772b0c121@virtuozzo.com> <20161202140147.gvj452hmlbxnstrg@treble> <20161202144240.3tect4hx4cks44iu@treble> <20161202150819.2h25oyoj7qsvrw77@treble> <20161202174221.sfcvvddbvl5uz4f4@treble> CC: Dmitry Vyukov , "Rafael J. Wysocki" , Len Brown , Pavel Machek , , LKML , Peter Zijlstra , "Ingo Molnar" , Andy Lutomirski , Scott Bauer , "x86@kernel.org" , "Alexander Potapenko" , kasan-dev From: Andrey Ryabinin Message-ID: <9cc8748f-9b52-4267-8237-b44084a48de4@virtuozzo.com> Date: Fri, 2 Dec 2016 23:55:55 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.0 MIME-Version: 1.0 In-Reply-To: <20161202174221.sfcvvddbvl5uz4f4@treble> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [84.47.128.244] X-ClientProxiedBy: AM5PR0101CA0001.eurprd01.prod.exchangelabs.com (10.169.240.11) To DB6PR0801MB2054.eurprd08.prod.outlook.com (10.168.86.135) X-MS-Office365-Filtering-Correlation-Id: cd45667a-fc49-46f1-23c8-08d41af67573 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DB6PR0801MB2054; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2054;3:HOl7CG+pDWRai2j/yzTD60+bCZXhxo2MVObg7PY5G+hI4oMWwihgMXu2oQx6MKuzZHS11KkQ1jhIuImcPQfv6giEzidtyx6RU6sPGC07tObi8tBlHNI1H17kGZorwfO5igN5n9AddNGyFsl/FifTJLX53a7SG4g3wBQOso0k4PmqoOvcox5MC0NWQGvk7cSzrlNhtt2GKSj/yyNweBd6pNoq9shLJ74MKW0X3kzJUAI2XnqM4yo9uQr/X4RQHlempSd54Ycdd8o8TK7n75tlzg==;25:Zomk88l4v/OhqxqGMqzVTrKWtelIXwfGy0/x1sKySCP2qYkuQiw72vWJVVzuOpl8U0UXHHrUS1CFwA85/x6vPtJjnzHX3k03Y0kuQUYTSEa5QKRMjsKKebCg5WLVoJ/Z+rK925Fzqh2CP3YCnxOuNjiuxd16CUMnAVyFjEQPnov4XaWkrsw+TaiUEaVbQZ8isn+C0R4iNu+o+wkQkJ7Fnl76QOrnP0LeHN10JewOBD5qNMW+g2YHOjB5i/XaC18NLFPKSPCBxVN9Y/qcjaW7cDZcu7aas4p1H+P2dIMdFMmJ1tw+ulm5H5003A9yiaxUgDFUfd5WCyu2ZWhF+am7QiJFDFMMmL4KId1wKGXkjtdK7x6v23aXvb0k0965kA6NRIXcQu8k6np8to4qP41nv46mbjA989JXJIqUOMQcmhAZ1kywiPxB0lP+kpUxycXE9DJBxNv2hU03NdhoKlo9vg== X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2054;31:hCrbR6RXQXgBMjJ7WQytsn93Q+qB6Ureybj66K0FCyZTZ89q1w+jr86r/rIMfYQYgLKuVvlK17ZGf2el3c7+lM3pZpSgSbj7ZycaL+8DqZuVFjxxdo+3ved2vM0ZwK/V5sCNdWl7SwMkoNP9zC1L66xvwNdDP+Td+1YbtQoaXMugqfXKrii2VOPxMcIcMOQAeTROhNt2aKeZPtsInTNxqdi68n8/1cGv4NXOKHTpNmvn7nFJrnFn3/aMBA1R9bVbAu5UBCTb3Ov1sLyP8yPVMA==;20:7tw8EHHzdKrw1+upCRtac1iz+ycEBIHZVNFw/VHSebheIFdDeN1V2RRD9cRii/UEHdAVjNnCcmBkk6fmtcsHDLKbJssVqzqsLz4+eAae9x7p9is2WlclWjt1+Dnwi7rHjcnJCM5Ar24JFgo6XP+2pduY/dOt336REEV4DXQdAbA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(192374486261705)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(2016111802025)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(6043046)(6042181)(6072148);SRVR:DB6PR0801MB2054;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0801MB2054; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2054;4:0uXM67rsKiKdJmEGJ4PGcD9DF8kRlcsFqUjhVmMkcP0IkcaXqEp/R8axPBLA1PMltkmgOazBjSl43gSAElWbspVoeE/6mBmi80gArIixC4LETwelHVzMUK+wSIrvTkMr91fSq/vsLuMGOhuhQOxOo+mxb3SUE8f77UoMmNgSoR7zBg201cnCTlfIuIPnPPeeQ2P/zw/2BD8KBvBP4enCg2jQ87ExghdhLXfrj1SbOHsDQRZSEL054xopB3IvhigBrnx6/twVnyytV9LDfyAJVI9tQDajRwm/CNxsE7DjVzN3UQ6OnND5aGpWXYZI2ncJyaI5kv7N/b7aohCNn2z/BbpHPqkEyAdS6zjuNKa8XaCGob9sVkTi4N6y05leTD0RDc0b8WXtdf8QYqNAGawWJ9thOgUn78zI+PORFga3zGstG4lkz8TwWJK5ejqwlYFM0BEEc9IujtJkDUKX3YMJ+eARBXmLv+7JPeXgBzx9X5DdR9FENFY3A8q5f9QkAhgL1kGHo8E6zNsWcyCfVv5vwqkPnMDMKoqL5dvCoX+h2js02idqUN52qvGUrfA9h4p4pce3ulY2R5nfBv06OqgqXt3hTHZRV6sjUab9oDVlq/NDciMmYGG8StTK/CExz639GpDXCGH9c4D15jV47vnBwEIpD4sslRCXIlAZYLpo0D+tcZsWdqX8whbWqEmHEEbxwF3Tc0j4xXtyqPANF83nf+qUoicCQmKoB3aiahfXp/E= X-Forefront-PRVS: 0144B30E41 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(199003)(24454002)(189002)(377454003)(4001350100001)(23676002)(81156014)(97736004)(8676002)(189998001)(81166006)(230700001)(7416002)(54356999)(7736002)(2950100002)(76176999)(6916009)(5660300001)(305945005)(50986999)(110136003)(6666003)(65826007)(68736007)(83506001)(50466002)(38730400001)(64126003)(229853002)(4326007)(2906002)(92566002)(6486002)(90366009)(733004)(101416001)(77096006)(93886004)(7846002)(36756003)(42186005)(31696002)(66066001)(65956001)(86362001)(31686004)(15650500001)(105586002)(6116002)(33646002)(106356001)(3846002)(65806001)(47776003)(505234006);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0801MB2054;H:[10.52.82.3];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjA4MDFNQjIwNTQ7MjM6SXA4dVVqTjFYZi83TmVwQ3JOeTZZam5R?= =?utf-8?B?SjV4Z0xweUtKQ2xRUDRNYlpUbVNETUE0YXU3RFgrazArOW5IQkhnZmxiNFV6?= =?utf-8?B?Vk5Sb1NRSks3cmJvYitJdDllcm1VNkdkN1RCZ2NnVDhNRk1USFNjT1hOOXBk?= =?utf-8?B?T050a0c1OWxDaFdnS1duUTE1MFM3V1Q3bTlCQ2VIMW0wTlQrYUlqclJNQXkz?= =?utf-8?B?VndPZ0NsZ3RacWR6NGE4UzY1WXg1VDZzTVRjRVdRdXJiOHJ3aHF6TVV4SkhE?= =?utf-8?B?cCs5S3VQL1VPU2NNSEVkTmNQVWJtM3pvZmdkNDhXYWRRa0hrNHNDWnY5S2oz?= =?utf-8?B?aDBSSVpwNmoyRnR6Z3RpV09QKzJaMjhVbEprWjBBSDcwb3JacGhlc05PNHRk?= =?utf-8?B?a1VsQnRKTVV6MlY5UUVVYm1CNkZocEgxVnZ2M3A3UE90RHdvVkM4SDFpdENV?= =?utf-8?B?b1h0L2k2cFl2YWV3TjZGT3FPUWhRSWt1Z1FucXk4NGhYSDdWTUFjZS9DYXpu?= =?utf-8?B?UllNY01lSEVlNytDUzczcGRQS1EyKzZ5MjgzREI4MDVzZlp1T1JETUdtSXNQ?= =?utf-8?B?emtWNXpBd0FKY1A0aVVPVTNac3JEWGtDbmgzZGpaUCtRbDFUem8yMlhVbjlT?= =?utf-8?B?WjBFeVJjbDVrY1JRRzNSTnFmUGZOUWRUNjd2TFNzV3B1TDVFMUl6WFdmNlV2?= =?utf-8?B?VTFUYzcwMXRHY2dDQlUySWhhUkorUnY2Ty9mTnhUenBzN3ZrSWRjSHpCbmpI?= =?utf-8?B?aW9GWVVlTDV1ODI3M0x5REdxNDJ1NHlqQ3BucTFjWE5TbE5XeERUdE5vNXRz?= =?utf-8?B?ZEhWbmhzWk12Ym0yaTcrMU5Ha3dXcDI0Ulkvb1VkZGFUNXRTcHZkL0xDeDZX?= =?utf-8?B?ZzFHak4wSzRzZGc4MEwwcENFUFg2dGNmNm5zQVFsQklycytxbFloK2VJc1hW?= =?utf-8?B?V3BZRUhyYWY4M1NiVUdVelphajNIMDVZRXRyeDVNQ1FzMXhwRytYV2VZQ0hT?= =?utf-8?B?TzBDUmZ4aGx0YVJSTWZqVHE4M0lheE1Wem9kOFo3WVZiL0pqb3VZUW9hNlpZ?= =?utf-8?B?c05RWkpxdDFUbG1MT1VRaFEySEdveXJ5dzBweEdTMkVPemNKT2F0QVBGbkNz?= =?utf-8?B?dHZOaHZ3MkhUM3hwZHM0Y3lmVVNHdWthTkRKNTU1YnVYcDNTaFdpVUt5QWpy?= =?utf-8?B?NVNDS2UxNWZ0ek9LdHhDOTFmODloZ1NjVUFCMVR0ZzhtSUhJZ1Y5c3VYRW9w?= =?utf-8?B?VjhWOThoZENyQThRWVBKOHNJMmZaVzdHMWVSdnZFeUNoampHOUhYSzh6YmZr?= =?utf-8?B?TU5xeDBYQzAraUx3ZTRzZ1hxZGVXVWoxRTRpWVNRN29HUTllb0c4S0NrV0pM?= =?utf-8?B?OExMaVJvaXQ0N21tTXNyTzR5V2tDcmE2ZFdMeDlxS09PM0NoUEZ6dWFjdmdM?= =?utf-8?B?QXI2REJmNGNSTW5nMWdXRzBIRm85elVGN2ZYelJuNlFWNlV0UVA2NW52T3Vp?= =?utf-8?B?S1J6NkdIdFlIcVBMTVpqb3hFcU1NWUUvSDRGWGxJWGYvOCtBV0xLSUZDQkg1?= =?utf-8?B?L3dUNGlyM1lLWGJKbTNITVdtZ1VYNFhhYmEvVlN0d29UNlhBc2pDWFBxc2xH?= =?utf-8?B?bFg0S09hT243ZzBLc0ZzZXpNemVyTFhIT0J6TW8zNENiYjlTeS9xWStwQzRa?= =?utf-8?B?K2NTYTZGSGdkTVlSUy9kazZvVy9MTTVubG9qRWl1eFdjUUFZOE9pVjRlQUdp?= =?utf-8?B?VGNsSDVQZUNiaG5aV3RyakZiRzJYdTBwclduRlQ0dnYvUlA2endqVFdHMXR3?= =?utf-8?B?bnZNWXd0MkpuN1ZFUG5KWUpVRDY5Q05oNWgwcWEzVGR3WjhhdXRuWDRBS3Q1?= =?utf-8?B?OG1waGNXMFdBYmdJSE1DUzBka1MvTFMxTk1ISmxaVUpyaFpudlM2TDFVNEFw?= =?utf-8?B?ZnNDSXc0TFhGd2c9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2054;6:x/1ekzjKOBccjvvI+mNRjwkidVLXbQAxCw+aE1ftqi7Pujb8hWqIRFbnhEYA5mMEPidK/B9tjjNrL3IXq1KkWZjSKsBAVMejZq7JmDUNH2giaNZxrLvGE/0YE6IVd5Xske8x0+iLutBEYsOJ8mgbBatuGpFay/O7FtUpJqh6Ze4lfFGjlXOjb35C/mS3Mcbh1gwyd4yKzxD5RGXI5fqQsACZxKWg4ufgCfAOT0j7wTsawrORHoEwIKWal/valbaRBIjGWI2qzGPSQS37h9vFPaF54afNern6LXBk5VPC7xcab2dTidW9zAsVW1vIzD5ni69OUpSBJa34nmeqvLPeJESIwo2b2fR07cpO0cOhYRAHUBJ3ItKmOR8Yb/ZtXE3uiET+mqprLJsK7+zkfwQJX9VtFMuZ8dyYPzy/sq4ykVx1O5K5YtFMdsd+BvQpridA;5:Gh2x+zxJ6o1Oi/ot31lZbG1xwVUD70RGXbxvI0Fg340U7TLyNua1ATbjpRueDetEmxZDLCoJAhfSVYLNhTsrwBaYt+1dYhOHO7MBRUsttD9KLPr/BcsTb/XiVUkWcpNruCXeqKzI2sEhw05LTmL3wQ==;24:j++3E/kOD87Td1V7xylrq71Ok7Wg2BJT51DTHAbFEm4khDEd/Yzu7nH7W6OkI82hXhHG5oZt9p1SrwBQBAdDJ4OK03LTMlDagTfH6NqBZFM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0801MB2054;7:7TlT5gk75dXKwJC/hCcIsfYSrkfYS0QFc19Fj7Dy1vrA5ZLKHZuT7B1l2PEJOKXsUGROJFAOJXxmizEcfi/S281RYALfLvE4DJHaSmESfXQPG7gpAD2OX4hvKN/l6/rf0dYPZa0JF5FPWk/Xy6/yPxT4xeAkI6eFg+VxYVFnKX1M9Su7MC5ABtGbBZai6vU6RSsKw52HAcjN7HMJmjLSVvBXTyW1HJ+9uUU4FQtD8wJ8aaaE3EBApeeP6rgoLkPCcT62HNzrWXAO0mqw1jZua/LkGdr8PKSp4Mr5fXOrcMAUP1T4qYWbR8fvisjGkKhOQXOFO06rfsAKIIsUAffqpXi5figquNkSTMRhweH1zms1TnmqAY8UZMs9r+aRCqiGp/b/4YAEJT8m2EBJHCWfJJQ1hz5axeRl/SRtxBPOgGhaGOljohliG9IBaWTDf28JxIF8H2eRREYAfqfJScUUUQ==;20:hTNO5Y2goLTag0UrJD6wSmKY6IjU78xRTuWf2xrpFiIJgI1LV7Wp+IeZniOzW7vqEuRWEDfdisRSnLSdtlbaSRBx4twEddvFLFnTMena94fatUiRS8pReXPR2Jx9TYToEEzNlxCog6Q28UTi31v2R+xJC9HwQnE2clmVxvJX5Bs= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Dec 2016 21:01:58.7058 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB2054 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/02/2016 08:42 PM, Josh Poimboeuf wrote: > Resuming from a suspend operation is showing a KASAN false positive > warning: > > BUG: KASAN: stack-out-of-bounds in unwind_get_return_address+0x11d/0x130 at addr ffff8803867d7878 > Read of size 8 by task pm-suspend/7774 > page:ffffea000e19f5c0 count:0 mapcount:0 mapping: (null) index:0x0 > flags: 0x2ffff0000000000() > page dumped because: kasan: bad access detected > CPU: 0 PID: 7774 Comm: pm-suspend Tainted: G B 4.9.0-rc7+ #8 > Hardware name: Gigabyte Technology Co., Ltd. Z170X-UD5/Z170X-UD5-CF, BIOS F5 03/07/2016 > Call Trace: > dump_stack+0x63/0x82 > kasan_report_error+0x4b4/0x4e0 > ? acpi_hw_read_port+0xd0/0x1ea > ? kfree_const+0x22/0x30 > ? acpi_hw_validate_io_request+0x1a6/0x1a6 > __asan_report_load8_noabort+0x61/0x70 > ? unwind_get_return_address+0x11d/0x130 > unwind_get_return_address+0x11d/0x130 > ? unwind_next_frame+0x97/0xf0 > __save_stack_trace+0x92/0x100 > save_stack_trace+0x1b/0x20 > save_stack+0x46/0xd0 > ? save_stack_trace+0x1b/0x20 > ? save_stack+0x46/0xd0 > ? kasan_kmalloc+0xad/0xe0 > ? kasan_slab_alloc+0x12/0x20 > ? acpi_hw_read+0x2b6/0x3aa > ? acpi_hw_validate_register+0x20b/0x20b > ? acpi_hw_write_port+0x72/0xc7 > ? acpi_hw_write+0x11f/0x15f > ? acpi_hw_read_multiple+0x19f/0x19f > ? memcpy+0x45/0x50 > ? acpi_hw_write_port+0x72/0xc7 > ? acpi_hw_write+0x11f/0x15f > ? acpi_hw_read_multiple+0x19f/0x19f > ? kasan_unpoison_shadow+0x36/0x50 > kasan_kmalloc+0xad/0xe0 > kasan_slab_alloc+0x12/0x20 > kmem_cache_alloc_trace+0xbc/0x1e0 > ? acpi_get_sleep_type_data+0x9a/0x578 > acpi_get_sleep_type_data+0x9a/0x578 > acpi_hw_legacy_wake_prep+0x88/0x22c > ? acpi_hw_legacy_sleep+0x3c7/0x3c7 > ? acpi_write_bit_register+0x28d/0x2d3 > ? acpi_read_bit_register+0x19b/0x19b > acpi_hw_sleep_dispatch+0xb5/0xba > acpi_leave_sleep_state_prep+0x17/0x19 > acpi_suspend_enter+0x154/0x1e0 > ? trace_suspend_resume+0xe8/0xe8 > suspend_devices_and_enter+0xb09/0xdb0 > ? printk+0xa8/0xd8 > ? arch_suspend_enable_irqs+0x20/0x20 > ? try_to_freeze_tasks+0x295/0x600 > pm_suspend+0x6c9/0x780 > ? finish_wait+0x1f0/0x1f0 > ? suspend_devices_and_enter+0xdb0/0xdb0 > state_store+0xa2/0x120 > ? kobj_attr_show+0x60/0x60 > kobj_attr_store+0x36/0x70 > sysfs_kf_write+0x131/0x200 > kernfs_fop_write+0x295/0x3f0 > __vfs_write+0xef/0x760 > ? handle_mm_fault+0x1346/0x35e0 > ? do_iter_readv_writev+0x660/0x660 > ? __pmd_alloc+0x310/0x310 > ? do_lock_file_wait+0x1e0/0x1e0 > ? apparmor_file_permission+0x18/0x20 > ? security_file_permission+0x73/0x1c0 > ? rw_verify_area+0xbd/0x2b0 > vfs_write+0x149/0x4a0 > SyS_write+0xd9/0x1c0 > ? SyS_read+0x1c0/0x1c0 > entry_SYSCALL_64_fastpath+0x1e/0xad > Memory state around the buggy address: > ffff8803867d7700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > ffff8803867d7780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > >ffff8803867d7800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f4 > ^ > ffff8803867d7880: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 > ffff8803867d7900: 00 00 00 f1 f1 f1 f1 04 f4 f4 f4 f3 f3 f3 f3 00 > > KASAN instrumentation poisons the stack when entering a function and > unpoisons it when exiting the function. However, in the suspend path, > some functions never return, so their stack never gets unpoisoned, > resulting in stale KASAN shadow data which can cause later false > positive warnings like the one above. > > Reported-by: Scott Bauer > Signed-off-by: Josh Poimboeuf Acked-by: Andrey Ryabinin