lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Mon, 26 Aug 2013 08:45:58 +0200
From:	Knut Petersen <Knut_Petersen@...nline.de>
To:	linux-kernel@...r.kernel.org
CC:	linux-media@...r.kernel.org
Subject: dvb_device_open: possible circular locking dependency detected

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: [<f8c4a0d9>] videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb]
[  186.583036]
[  186.583036] but task is already holding lock:
[  186.583039]  (minor_rwsem){++++..}, at: [<f8c340a1>] 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]        [<c01682d4>] lock_acquire+0x9b/0xd5
[  186.583077]        [<c0532cea>] down_write+0x20/0x3c
[  186.583084]        [<f8c343f8>] dvb_register_device+0x158/0x20a [dvb_core]
[  186.583093]        [<f8c3a28a>] dvb_register_frontend+0x15b/0x18d [dvb_core]
[  186.583104]        [<f8c4a297>] videobuf_dvb_register_bus+0xd1/0x2c7 [videobuf_dvb]
[  186.583110]        [<f8c51eb1>] cx8802_dvb_probe+0x201b/0x2136 [cx88_dvb]
[  186.583118]        [<f851787b>] cx8802_register_driver+0x121/0x1f7 [cx8802]
[  186.583129]        [<f8c5f01c>] 0xf8c5f01c
[  186.583135]        [<c01003b5>] do_one_initcall+0x6f/0xea
[  186.583140]        [<c0170443>] load_module+0x168a/0x1985
[  186.583146]        [<c01707b7>] SyS_init_module+0x79/0x91
[  186.583151]        [<c0535045>] syscall_call+0x7/0xb
[  186.583156]
[  186.583156] -> #1 (dvbdev_register_lock){+.+.+.}:
[  186.583162]        [<c01682d4>] lock_acquire+0x9b/0xd5
[  186.583167]        [<c05326a1>] mutex_lock_nested+0x3a/0x298
[  186.583172]        [<f8c342c2>] dvb_register_device+0x22/0x20a [dvb_core]
[  186.583181]        [<f8c34968>] dvb_dmxdev_init+0xbb/0xf7 [dvb_core]
[  186.583189]        [<f8c4a33f>] videobuf_dvb_register_bus+0x179/0x2c7 [videobuf_dvb]
[  186.583195]        [<f8c51eb1>] cx8802_dvb_probe+0x201b/0x2136 [cx88_dvb]
[  186.583202]        [<f851787b>] cx8802_register_driver+0x121/0x1f7 [cx8802]
[  186.583208]        [<f8c5f01c>] 0xf8c5f01c
[  186.583212]        [<c01003b5>] do_one_initcall+0x6f/0xea
[  186.583217]        [<c0170443>] load_module+0x168a/0x1985
[  186.583221]        [<c01707b7>] SyS_init_module+0x79/0x91
[  186.583226]        [<c0535045>] syscall_call+0x7/0xb
[  186.583231]
[  186.583231] -> #0 (&fe->lock){+.+.+.}:
[  186.583237]        [<c01677cd>] __lock_acquire+0xebd/0x154c
[  186.583242]        [<c01682d4>] lock_acquire+0x9b/0xd5
[  186.583246]        [<c05326a1>] mutex_lock_nested+0x3a/0x298
[  186.583251]        [<f8c4a0d9>] videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb]
[  186.583257]        [<f8c4fcef>] cx88_dvb_bus_ctrl+0x25/0x9d [cx88_dvb]
[  186.583263]        [<f8c39e63>] dvb_frontend_open+0x12f/0x2ca [dvb_core]
[  186.583273]        [<f8c34103>] dvb_device_open+0x88/0xfa [dvb_core]
[  186.583281]        [<c01db1ab>] chrdev_open+0xfc/0x11c
[  186.583287]        [<c01d6332>] do_dentry_open+0x169/0x203
[  186.583293]        [<c01d656f>] finish_open+0x2c/0x37
[  186.583297]        [<c01e2b45>] do_last+0x818/0xa03
[  186.583303]        [<c01e2f35>] path_openat+0x205/0x4d2
[  186.583308]        [<c01e343d>] do_filp_open+0x2a/0x63
[  186.583312]        [<c01d749e>] do_sys_open+0x140/0x1bb
[  186.583317]        [<c01d7536>] SyS_open+0x1d/0x1f
[  186.583322]        [<c0535045>] 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: [<f8c34097>] dvb_device_open+0x1c/0xfa [dvb_core]
[  186.583385]  #1:  (minor_rwsem){++++..}, at: [<f8c340a1>] 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]  [<c052f17a>] dump_stack+0x16/0x18
[  186.583456]  [<c052d253>] print_circular_bug+0x233/0x240
[  186.583462]  [<c01677cd>] __lock_acquire+0xebd/0x154c
[  186.583469]  [<c01682d4>] lock_acquire+0x9b/0xd5
[  186.583476]  [<f8c4a0d9>] ? videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb]
[  186.583483]  [<f8c4a0d9>] ? videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb]
[  186.583489]  [<c05326a1>] mutex_lock_nested+0x3a/0x298
[  186.583496]  [<f8c4a0d9>] ? videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb]
[  186.583503]  [<f8c4a0d9>] videobuf_dvb_find_frontend+0x1b/0x43 [videobuf_dvb]
[  186.583511]  [<f8c4fcef>] cx88_dvb_bus_ctrl+0x25/0x9d [cx88_dvb]
[  186.583522]  [<f8c39e63>] dvb_frontend_open+0x12f/0x2ca [dvb_core]
[  186.583532]  [<f8c340e0>] ? dvb_device_open+0x65/0xfa [dvb_core]
[  186.583542]  [<f8c34103>] dvb_device_open+0x88/0xfa [dvb_core]
[  186.583548]  [<c01db1ab>] chrdev_open+0xfc/0x11c
[  186.583554]  [<c01d6332>] do_dentry_open+0x169/0x203
[  186.583559]  [<c01db0af>] ? cdev_put+0x1f/0x1f
[  186.583564]  [<c01d656f>] finish_open+0x2c/0x37
[  186.583569]  [<c01e2b45>] do_last+0x818/0xa03
[  186.583575]  [<c01e00ff>] ? inode_permission+0x44/0x47
[  186.583580]  [<c01e015c>] ? link_path_walk+0x5a/0x690
[  186.583586]  [<c01e2f35>] path_openat+0x205/0x4d2
[  186.583592]  [<c0168a78>] ? trace_hardirqs_on+0xb/0xd
[  186.583598]  [<c01e343d>] do_filp_open+0x2a/0x63
[  186.583606]  [<c01ecd6f>] ? __alloc_fd+0xbf/0xc9
[  186.583612]  [<c01d749e>] do_sys_open+0x140/0x1bb
[  186.583617]  [<c01d8e9d>] ? __fput+0x1af/0x1c8
[  186.583623]  [<c0530000>] ? decode_winbond+0x60/0x159
[  186.583629]  [<c01d7536>] SyS_open+0x1d/0x1f
[  186.583634]  [<c0535045>] syscall_call+0x7/0xb
[  186.583640]  [<c0530000>] ? 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@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ