Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756094Ab3HZGqG (ORCPT ); Mon, 26 Aug 2013 02:46:06 -0400 Received: from mailout09.t-online.de ([194.25.134.84]:47821 "EHLO mailout09.t-online.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755948Ab3HZGqE (ORCPT ); Mon, 26 Aug 2013 02:46:04 -0400 Message-ID: <521AF9A6.4080907@t-online.de> Date: Mon, 26 Aug 2013 08:45:58 +0200 From: Knut Petersen User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: linux-kernel@vger.kernel.org CC: linux-media@vger.kernel.org Subject: dvb_device_open: possible circular locking dependency detected Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-ID: S8CmBiZToh3CslRlfBYSSW-Xq-8v3OFycmTkmaTO3rDDZUf+uCM-MiyqbMP-vGFQnk X-TOI-MSGID: 7b01db85-cbe6-4499-a655-d313cf616863 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 7516 Lines: 139 As long as I use the "Hauppauge WinTV Nova-HD-S2", nobody seems to be really interested in silencing deadlock warnings triggered by dvb_device_open(). dvb lockdep problems are old, but they still exist. See: http://permalink.gmane.org/gmane.linux.drivers.video-input-infrastructure/27027 [ 186.583006] ====================================================== [ 186.583009] [ INFO: possible circular locking dependency detected ] [ 186.583013] 3.11.0-rc6-main+ #29 Not tainted [ 186.583016] ------------------------------------------------------- [ 186.583019] kaffeine/1986 is trying to acquire lock: [ 186.583022] (&fe->lock){+.+.+.}, at: [] videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb] [ 186.583036] [ 186.583036] but task is already holding lock: [ 186.583039] (minor_rwsem){++++..}, at: [] dvb_device_open+0x26/0xfa [dvb_core] [ 186.583054] [ 186.583054] which lock already depends on the new lock. [ 186.583054] [ 186.583058] [ 186.583058] the existing dependency chain (in reverse order) is: [ 186.583062] [ 186.583062] -> #2 (minor_rwsem){++++..}: [ 186.583068] [] lock_acquire+0x9b/0xd5 [ 186.583077] [] down_write+0x20/0x3c [ 186.583084] [] dvb_register_device+0x158/0x20a [dvb_core] [ 186.583093] [] dvb_register_frontend+0x15b/0x18d [dvb_core] [ 186.583104] [] videobuf_dvb_register_bus+0xd1/0x2c7 [videobuf_dvb] [ 186.583110] [] cx8802_dvb_probe+0x201b/0x2136 [cx88_dvb] [ 186.583118] [] cx8802_register_driver+0x121/0x1f7 [cx8802] [ 186.583129] [] 0xf8c5f01c [ 186.583135] [] do_one_initcall+0x6f/0xea [ 186.583140] [] load_module+0x168a/0x1985 [ 186.583146] [] SyS_init_module+0x79/0x91 [ 186.583151] [] syscall_call+0x7/0xb [ 186.583156] [ 186.583156] -> #1 (dvbdev_register_lock){+.+.+.}: [ 186.583162] [] lock_acquire+0x9b/0xd5 [ 186.583167] [] mutex_lock_nested+0x3a/0x298 [ 186.583172] [] dvb_register_device+0x22/0x20a [dvb_core] [ 186.583181] [] dvb_dmxdev_init+0xbb/0xf7 [dvb_core] [ 186.583189] [] videobuf_dvb_register_bus+0x179/0x2c7 [videobuf_dvb] [ 186.583195] [] cx8802_dvb_probe+0x201b/0x2136 [cx88_dvb] [ 186.583202] [] cx8802_register_driver+0x121/0x1f7 [cx8802] [ 186.583208] [] 0xf8c5f01c [ 186.583212] [] do_one_initcall+0x6f/0xea [ 186.583217] [] load_module+0x168a/0x1985 [ 186.583221] [] SyS_init_module+0x79/0x91 [ 186.583226] [] syscall_call+0x7/0xb [ 186.583231] [ 186.583231] -> #0 (&fe->lock){+.+.+.}: [ 186.583237] [] __lock_acquire+0xebd/0x154c [ 186.583242] [] lock_acquire+0x9b/0xd5 [ 186.583246] [] mutex_lock_nested+0x3a/0x298 [ 186.583251] [] videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb] [ 186.583257] [] cx88_dvb_bus_ctrl+0x25/0x9d [cx88_dvb] [ 186.583263] [] dvb_frontend_open+0x12f/0x2ca [dvb_core] [ 186.583273] [] dvb_device_open+0x88/0xfa [dvb_core] [ 186.583281] [] chrdev_open+0xfc/0x11c [ 186.583287] [] do_dentry_open+0x169/0x203 [ 186.583293] [] finish_open+0x2c/0x37 [ 186.583297] [] do_last+0x818/0xa03 [ 186.583303] [] path_openat+0x205/0x4d2 [ 186.583308] [] do_filp_open+0x2a/0x63 [ 186.583312] [] do_sys_open+0x140/0x1bb [ 186.583317] [] SyS_open+0x1d/0x1f [ 186.583322] [] syscall_call+0x7/0xb [ 186.583327] [ 186.583327] other info that might help us debug this: [ 186.583327] [ 186.583331] Chain exists of: [ 186.583331] &fe->lock --> dvbdev_register_lock --> minor_rwsem [ 186.583331] [ 186.583340] Possible unsafe locking scenario: [ 186.583340] [ 186.583343] CPU0 CPU1 [ 186.583346] ---- ---- [ 186.583348] lock(minor_rwsem); [ 186.583352] lock(dvbdev_register_lock); [ 186.583357] lock(minor_rwsem); [ 186.583361] lock(&fe->lock); [ 186.583365] [ 186.583365] *** DEADLOCK *** [ 186.583365] [ 186.583369] 2 locks held by kaffeine/1986: [ 186.583372] #0: (dvbdev_mutex){+.+...}, at: [] dvb_device_open+0x1c/0xfa [dvb_core] [ 186.583385] #1: (minor_rwsem){++++..}, at: [] dvb_device_open+0x26/0xfa [dvb_core] [ 186.583398] [ 186.583398] stack backtrace: [ 186.583403] CPU: 0 PID: 1986 Comm: kaffeine Not tainted 3.11.0-rc6-main+ #29 [ 186.583406] Hardware name: /i915GMm-HFS, BIOS 6.00 PG 09/14/2005 [ 186.583410] 00000000 c0a3600c f0d79c5c c052f17a f0d79c8c c052d253 c06b1687 c06b1553 [ 186.583421] c06b151b c06b153c c06b151b f0d79cd4 f0ed64e0 00000002 f0ed695c f0ed6974 [ 186.583432] f0d79d04 c01677cd f0ed695c 00000002 00000002 00000000 ffffe000 f0d79ffc [ 186.583443] Call Trace: [ 186.583450] [] dump_stack+0x16/0x18 [ 186.583456] [] print_circular_bug+0x233/0x240 [ 186.583462] [] __lock_acquire+0xebd/0x154c [ 186.583469] [] lock_acquire+0x9b/0xd5 [ 186.583476] [] ? videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb] [ 186.583483] [] ? videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb] [ 186.583489] [] mutex_lock_nested+0x3a/0x298 [ 186.583496] [] ? videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb] [ 186.583503] [] videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb] [ 186.583511] [] cx88_dvb_bus_ctrl+0x25/0x9d [cx88_dvb] [ 186.583522] [] dvb_frontend_open+0x12f/0x2ca [dvb_core] [ 186.583532] [] ? dvb_device_open+0x65/0xfa [dvb_core] [ 186.583542] [] dvb_device_open+0x88/0xfa [dvb_core] [ 186.583548] [] chrdev_open+0xfc/0x11c [ 186.583554] [] do_dentry_open+0x169/0x203 [ 186.583559] [] ? cdev_put+0x1f/0x1f [ 186.583564] [] finish_open+0x2c/0x37 [ 186.583569] [] do_last+0x818/0xa03 [ 186.583575] [] ? inode_permission+0x44/0x47 [ 186.583580] [] ? link_path_walk+0x5a/0x690 [ 186.583586] [] path_openat+0x205/0x4d2 [ 186.583592] [] ? trace_hardirqs_on+0xb/0xd [ 186.583598] [] do_filp_open+0x2a/0x63 [ 186.583606] [] ? __alloc_fd+0xbf/0xc9 [ 186.583612] [] do_sys_open+0x140/0x1bb [ 186.583617] [] ? __fput+0x1af/0x1c8 [ 186.583623] [] ? decode_winbond+0x60/0x159 [ 186.583629] [] SyS_open+0x1d/0x1f [ 186.583634] [] syscall_call+0x7/0xb [ 186.583640] [] ? decode_winbond+0x60/0x159 [ 187.238501] cx24116_firmware_ondemand: Waiting for firmware upload (dvb-fe-cx24116.fw)... [ 187.241340] cx24116_firmware_ondemand: Waiting for firmware upload(2)... [ 192.841700] cx24116_load_firmware: FW version 1.26.90.0 [ 192.841717] cx24116_firmware_ondemand: Firmware upload complete cu, Knut -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/