From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail.kapsi.fi ([217.30.184.167]:59590 "EHLO mail.kapsi.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752038Ab3LRQEq (ORCPT ); Wed, 18 Dec 2013 11:04:46 -0500 Received: from dyn3-82-128-185-139.psoas.suomi.net ([82.128.185.139] helo=localhost.localdomain) by mail.kapsi.fi with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1VtJc4-0008UM-QT for linux-media@vger.kernel.org; Wed, 18 Dec 2013 18:04:44 +0200 Message-ID: <52B1C79C.1070408@iki.fi> Date: Wed, 18 Dec 2013 18:04:44 +0200 From: Antti Palosaari MIME-Version: 1.0 To: LMML Subject: em28xx DEADLOCK reported by lock debug Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: That same lock debug deadlock is still there (maybe ~4 times I report it during 2 years). Is that possible to fix easily at all? Antti joulu 18 17:56:37 localhost.localdomain kernel: usb 2-2: USB disconnect, device number 2 joulu 18 17:56:37 localhost.localdomain kernel: em28174 #0: disconnecting em28174 #0 video joulu 18 17:56:37 localhost.localdomain kernel: joulu 18 17:56:37 localhost.localdomain kernel: ====================================================== joulu 18 17:56:37 localhost.localdomain kernel: [ INFO: possible circular locking dependency detected ] joulu 18 17:56:37 localhost.localdomain kernel: 3.13.0-rc1+ #77 Tainted: G C O joulu 18 17:56:37 localhost.localdomain kernel: ------------------------------------------------------- joulu 18 17:56:37 localhost.localdomain kernel: khubd/34 is trying to acquire lock: joulu 18 17:56:37 localhost.localdomain kernel: (em28xx_devlist_mutex){+.+.+.}, at: [] em28xx_close_extension+0x1d/0x70 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: but task is already holding lock: joulu 18 17:56:37 localhost.localdomain kernel: (&dev->lock){+.+.+.}, at: [] em28xx_usb_disconnect+0x99/0x140 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: which lock already depends on the new lock. joulu 18 17:56:37 localhost.localdomain kernel: the existing dependency chain (in reverse order) is: joulu 18 17:56:37 localhost.localdomain kernel: -> #1 (&dev->lock){+.+.+.}: joulu 18 17:56:37 localhost.localdomain kernel: [] __lock_acquire+0x3d6/0xc40 joulu 18 17:56:37 localhost.localdomain kernel: [] lock_acquire+0xb0/0x150 joulu 18 17:56:37 localhost.localdomain kernel: [] mutex_lock_nested+0x77/0x3d0 joulu 18 17:56:37 localhost.localdomain kernel: [] em28xx_dvb_init+0x85/0x1b44 [em28xx_dvb] joulu 18 17:56:37 localhost.localdomain kernel: [] em28xx_register_extension+0x58/0xa0 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] 0xffffffffa0783010 joulu 18 17:56:37 localhost.localdomain kernel: [] do_one_initcall+0xfa/0x1b0 joulu 18 17:56:37 localhost.localdomain kernel: [] load_module+0x13c2/0x1a80 joulu 18 17:56:37 localhost.localdomain kernel: [] SyS_finit_module+0x86/0xb0 joulu 18 17:56:37 localhost.localdomain kernel: [] system_call_fastpath+0x16/0x1b joulu 18 17:56:37 localhost.localdomain kernel: -> #0 (em28xx_devlist_mutex){+.+.+.}: joulu 18 17:56:37 localhost.localdomain kernel: [] validate_chain.isra.36+0x10d7/0x1130 joulu 18 17:56:37 localhost.localdomain kernel: [] __lock_acquire+0x3d6/0xc40 joulu 18 17:56:37 localhost.localdomain kernel: [] lock_acquire+0xb0/0x150 joulu 18 17:56:37 localhost.localdomain kernel: [] mutex_lock_nested+0x77/0x3d0 joulu 18 17:56:37 localhost.localdomain kernel: [] em28xx_close_extension+0x1d/0x70 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] em28xx_usb_disconnect+0xb3/0x140 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] usb_unbind_interface+0x67/0x1d0 joulu 18 17:56:37 localhost.localdomain kernel: [] __device_release_driver+0x7f/0xf0 joulu 18 17:56:37 localhost.localdomain kernel: [] device_release_driver+0x25/0x40 joulu 18 17:56:37 localhost.localdomain kernel: [] bus_remove_device+0x11c/0x1a0 joulu 18 17:56:37 localhost.localdomain kernel: [] device_del+0x136/0x1d0 joulu 18 17:56:37 localhost.localdomain kernel: [] usb_disable_device+0xb0/0x290 joulu 18 17:56:37 localhost.localdomain kernel: [] usb_disconnect+0xb5/0x1d0 joulu 18 17:56:37 localhost.localdomain kernel: [] hub_port_connect_change+0xd6/0xad0 joulu 18 17:56:37 localhost.localdomain kernel: [] hub_events+0x313/0x9b0 joulu 18 17:56:37 localhost.localdomain kernel: [] hub_thread+0x35/0x190 joulu 18 17:56:37 localhost.localdomain kernel: [] kthread+0xff/0x120 joulu 18 17:56:37 localhost.localdomain kernel: [] ret_from_fork+0x7c/0xb0 joulu 18 17:56:37 localhost.localdomain kernel: other info that might help us debug this: joulu 18 17:56:37 localhost.localdomain kernel: Possible unsafe locking scenario: joulu 18 17:56:37 localhost.localdomain kernel: CPU0 CPU1 joulu 18 17:56:37 localhost.localdomain kernel: ---- ---- joulu 18 17:56:37 localhost.localdomain kernel: lock(&dev->lock); joulu 18 17:56:37 localhost.localdomain kernel: lock(em28xx_devlist_mutex); joulu 18 17:56:37 localhost.localdomain kernel: lock(&dev->lock); joulu 18 17:56:37 localhost.localdomain kernel: lock(em28xx_devlist_mutex); joulu 18 17:56:37 localhost.localdomain kernel: *** DEADLOCK *** joulu 18 17:56:37 localhost.localdomain kernel: 4 locks held by khubd/34: joulu 18 17:56:37 localhost.localdomain kernel: #0: (&__lockdep_no_validate__){......}, at: [] hub_events+0xb4/0x9b0 joulu 18 17:56:37 localhost.localdomain kernel: #1: (&__lockdep_no_validate__){......}, at: [] usb_disconnect+0x66/0x1d0 joulu 18 17:56:37 localhost.localdomain kernel: #2: (&__lockdep_no_validate__){......}, at: [] device_release_driver+0x1d/0x40 joulu 18 17:56:37 localhost.localdomain kernel: #3: (&dev->lock){+.+.+.}, at: [] em28xx_usb_disconnect+0x99/0x140 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: stack backtrace: joulu 18 17:56:37 localhost.localdomain kernel: CPU: 3 PID: 34 Comm: khubd Tainted: G C O 3.13.0-rc1+ #77 joulu 18 17:56:37 localhost.localdomain kernel: Hardware name: System manufacturer System Product Name/M5A78L-M/USB3, BIOS 1503 11/14/2012 joulu 18 17:56:37 localhost.localdomain kernel: ffffffff824f59f0 ffff88030dbb98e8 ffffffff816b8da9 ffffffff824f59f0 joulu 18 17:56:37 localhost.localdomain kernel: ffff88030dbb9928 ffffffff816b2c9b ffff88030dbb9960 0000000000000003 joulu 18 17:56:37 localhost.localdomain kernel: ffff88030da1afd0 0000000000000004 ffff88030da1a8a0 ffff88030da1afd0 joulu 18 17:56:37 localhost.localdomain kernel: Call Trace: joulu 18 17:56:37 localhost.localdomain kernel: [] dump_stack+0x4d/0x66 joulu 18 17:56:37 localhost.localdomain kernel: [] print_circular_bug+0x200/0x20e joulu 18 17:56:37 localhost.localdomain kernel: [] validate_chain.isra.36+0x10d7/0x1130 joulu 18 17:56:37 localhost.localdomain kernel: [] ? native_sched_clock+0x13/0x80 joulu 18 17:56:37 localhost.localdomain kernel: [] __lock_acquire+0x3d6/0xc40 joulu 18 17:56:37 localhost.localdomain kernel: [] ? __lock_acquire+0x3f7/0xc40 joulu 18 17:56:37 localhost.localdomain kernel: [] lock_acquire+0xb0/0x150 joulu 18 17:56:37 localhost.localdomain kernel: [] ? em28xx_close_extension+0x1d/0x70 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] mutex_lock_nested+0x77/0x3d0 joulu 18 17:56:37 localhost.localdomain kernel: [] ? em28xx_close_extension+0x1d/0x70 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] ? trace_hardirqs_on+0xd/0x10 joulu 18 17:56:37 localhost.localdomain kernel: [] ? em28xx_close_extension+0x1d/0x70 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] ? em28xx_usb_disconnect+0x99/0x140 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] ? em28xx_usb_disconnect+0x99/0x140 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] em28xx_close_extension+0x1d/0x70 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] em28xx_usb_disconnect+0xb3/0x140 [em28xx] joulu 18 17:56:37 localhost.localdomain kernel: [] usb_unbind_interface+0x67/0x1d0 joulu 18 17:56:37 localhost.localdomain kernel: [] __device_release_driver+0x7f/0xf0 joulu 18 17:56:37 localhost.localdomain kernel: [] device_release_driver+0x25/0x40 joulu 18 17:56:37 localhost.localdomain kernel: [] bus_remove_device+0x11c/0x1a0 joulu 18 17:56:37 localhost.localdomain kernel: [] device_del+0x136/0x1d0 joulu 18 17:56:37 localhost.localdomain kernel: [] usb_disable_device+0xb0/0x290 joulu 18 17:56:37 localhost.localdomain kernel: [] usb_disconnect+0xb5/0x1d0 joulu 18 17:56:37 localhost.localdomain kernel: [] hub_port_connect_change+0xd6/0xad0 joulu 18 17:56:37 localhost.localdomain kernel: [] ? usb_control_msg+0xd4/0x110 joulu 18 17:56:37 localhost.localdomain kernel: [] hub_events+0x313/0x9b0 joulu 18 17:56:37 localhost.localdomain kernel: [] hub_thread+0x35/0x190 joulu 18 17:56:37 localhost.localdomain kernel: [] ? abort_exclusive_wait+0xb0/0xb0 joulu 18 17:56:37 localhost.localdomain kernel: [] ? hub_events+0x9b0/0x9b0 joulu 18 17:56:37 localhost.localdomain kernel: [] kthread+0xff/0x120 joulu 18 17:56:37 localhost.localdomain kernel: [] ? kthread_create_on_node+0x250/0x250 joulu 18 17:56:37 localhost.localdomain kernel: [] ret_from_fork+0x7c/0xb0 joulu 18 17:56:37 localhost.localdomain kernel: [] ? kthread_create_on_node+0x250/0x250 joulu 18 17:56:37 localhost.localdomain kernel: tda18271 6-0060: destroying instance joulu 18 17:56:37 localhost.localdomain kernel: rc_unregister_device: Freed keycode table joulu 18 17:56:37 localhost.localdomain kernel: em28174 #0: V4L2 device video0 deregistered joulu 18 17:56:37 localhost.localdomain kernel: i2c i2c-6: adapter [em28174 #0] unregistered joulu 18 17:56:37 localhost.localdomain kernel: i2c i2c-5: adapter [em28174 #0] unregistered joulu 18 17:56:37 localhost.localdomain colord[603]: device removed: sysfs-PCTV_Systems-PCTV_290e -- http://palosaari.fi/