From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752009AbbHQXUM (ORCPT ); Mon, 17 Aug 2015 19:20:12 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47840 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751548AbbHQXUK (ORCPT ); Mon, 17 Aug 2015 19:20:10 -0400 To: Peter Zijlstra , Rusty Russell Cc: "Paul E. McKenney" , Linux Kernel Mailing List From: Laura Abbott Subject: 0be964be0 "module: Sanitize RCU usage and locking" breaks symbol_put_addr? Message-ID: <55D26C29.5040204@redhat.com> Date: Mon, 17 Aug 2015 16:20:09 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.1.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, We received a few bug backtraces: [ 41.536933] ------------[ cut here ]------------ [ 41.537545] WARNING: CPU: 1 PID: 813 at kernel/module.c:291 module_assert_mutex_or_preempt+0x49/0x90() [ 41.538174] Modules linked in: mxl5007t af9013 ... dvb_usb_af9015(+) ... dvb_usb_v2 dvb_core rc_core ... [ 41.542457] CPU: 1 PID: 813 Comm: systemd-udevd Not tainted 4.2.0-0.rc6.git0.1.fc24.x86_64+debug #1 ... [ 41.545938] Call Trace: [ 41.546607] [] dump_stack+0x4c/0x65 [ 41.547280] [] warn_slowpath_common+0x86/0xc0 [ 41.547959] [] ? af9013_read_ucblocks+0x20/0x20 [af9013] [ 41.548633] [] ? af9013_read_ucblocks+0x20/0x20 [af9013] [ 41.549315] [] warn_slowpath_null+0x1a/0x20 [ 41.549994] [] module_assert_mutex_or_preempt+0x49/0x90 [ 41.550664] [] __module_address+0x32/0x150 [ 41.551346] [] ? af9013_read_ucblocks+0x20/0x20 [af9013] [ 41.552037] [] ? af9013_read_ucblocks+0x20/0x20 [af9013] [ 41.552684] [] __module_text_address+0x16/0x70 [ 41.553361] [] ? af9013_read_ucblocks+0x20/0x20 [af9013] [ 41.554049] [] ? af9013_read_ucblocks+0x20/0x20 [af9013] [ 41.554701] [] symbol_put_addr+0x29/0x40 [ 41.555392] [] dvb_frontend_detach+0x7d/0x90 [dvb_core] [ 41.556078] [] dvb_usbv2_probe+0xc85/0x11a0 [dvb_usb_v2] [ 41.556750] [] af9015_probe+0x84/0xf0 [dvb_usb_af9015] [ 41.557483] [] usb_probe_interface+0x1bb/0x2e0 [ 41.558169] [] driver_probe_device+0x1f6/0x450 [ 41.558837] [] __driver_attach+0x94/0xa0 [ 41.559469] [] ? driver_probe_device+0x450/0x450 [ 41.560126] [] bus_for_each_dev+0x73/0xc0 [ 41.560748] [] driver_attach+0x1e/0x20 [ 41.561442] [] bus_add_driver+0x1ee/0x280 [ 41.562088] [] driver_register+0x60/0xe0 [ 41.562712] [] usb_register_driver+0xad/0x160 [ 41.563348] [] ? 0xffffffffa0567000 [ 41.563971] [] af9015_usb_driver_init+0x1e/0x1000 [dvb_usb_af9015] [ 41.564580] [] do_one_initcall+0xb3/0x200 [ 41.565210] [] ? kmem_cache_alloc_trace+0x355/0x380 [ 41.565834] [] ? do_init_module+0x28/0x1e9 [ 41.566428] [] do_init_module+0x60/0x1e9 [ 41.567042] [] load_module+0x21f7/0x28d0 [ 41.567633] [] ? m_show+0x1b0/0x1b0 [ 41.568252] [] ? sched_clock+0x9/0x10 [ 41.568861] [] ? local_clock+0x1c/0x20 [ 41.569453] [] SyS_init_module+0x178/0x1c0 [ 41.570059] [] entry_SYSCALL_64_fastpath+0x12/0x76 [ 41.570630] ---[ end trace 31a9dd90d4f559f5 ]--- Based on my understanding, this is spitting a warning that the module_mutex isn't held. There's a nice comment in symbol_put_addr right before the call: /* module_text_address is safe here: we're supposed to have reference * to module from symbol_get, so it can't go away. */ modaddr = __module_text_address(a); so it looks like this is an erroneous warning which shouldn't need the mutex held. Any ideas or am I off base here? Thanks, Laura