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>] [thread-next>] [day] [month] [year] [list]
Message-ID: <511777A3.6000506@t-online.de>
Date:	Sun, 10 Feb 2013 11:34:11 +0100
From:	Knut Petersen <Knut_Petersen@...nline.de>
To:	linux-media@...r.kernel.org
CC:	linux-kernel@...r.kernel.org,
	Mauro Carvalho Chehab <mchehab@...hat.com>
Subject: possible recursive locking: find_ref_lock() / v4l2_ctrl_add_handler()

Maybe somebody could have at that old locking warning:

[    9.761427] cx88/2: cx2388x MPEG-TS Driver Manager version 0.0.9 loaded
[    9.782848] cx88/0: cx2388x v4l2 driver version 0.0.9 loaded
[    9.794205] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/input/input5
[    9.879194] cx88[0]: subsystem: 0070:6906, board: Hauppauge WinTV-HVR4000(Lite) DVB-S/S2 [card=69,autodetected], frontend(s): 1
[    9.914871] input: HDA Intel Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input6
[    9.932037] cx88[0]: TV tuner type -1, Radio tuner type -1
[    9.953646] input: HDA Intel Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
[    9.981718] input: HDA Intel Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
[    9.996493] input: HDA Intel Line Out CLFE as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[   10.003354] input: HDA Intel Line Out Surround as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[   10.007987] input: HDA Intel Line Out Front as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[   10.450310] tveeprom 9-0050: Hauppauge model 69100, rev B4C3, serial# 7900937
[   10.453751] tveeprom 9-0050: MAC address is 00:0d:fe:78:8f:09
[   10.457134] tveeprom 9-0050: tuner model is Conexant CX24118A (idx 123, type 4)
[   10.460547] tveeprom 9-0050: TV standards ATSC/DVB Digital (eeprom 0x80)
[   10.463936] tveeprom 9-0050: audio processor is None (idx 0)
[   10.467320] tveeprom 9-0050: decoder processor is CX880 (idx 20)
[   10.470648] tveeprom 9-0050: has no radio, has IR receiver, has no IR transmitter
[   10.474038] cx88[0]: hauppauge eeprom: model=69100
[   10.508060] Registered IR keymap rc-hauppauge
[   10.518107] input: cx88 IR (Hauppauge WinTV-HVR400 as /devices/pci0000:00/0000:00:1e.0/0000:05:05.2/rc/rc0/input12
[   10.526485] rc0: cx88 IR (Hauppauge WinTV-HVR400 as /devices/pci0000:00/0000:00:1e.0/0000:05:05.2/rc/rc0
[   10.530869] cx88[0]/2: cx2388x 8802 Driver Manager
[   10.534533] cx88[0]/2: found at 0000:05:05.2, rev: 5, irq: 17, latency: 32, mmio: 0xd2000000
[   10.541221] cx88[0]/0: found at 0000:05:05.0, rev: 5, irq: 17, latency: 32, mmio: 0xd0000000
[   10.545197] IR RC5(x) protocol handler initialized
[   10.557935]
[   10.560012] =============================================
[   10.560012] [ INFO: possible recursive locking detected ]
[   10.560012] 3.8.0-rc7-main #20 Not tainted
[   10.560012] ---------------------------------------------
[   10.560012] modprobe/469 is trying to acquire lock:
[   10.560012]  (hdl->lock){+.+...}, at: [<f85604f6>] find_ref_lock+0x1f/0x39 [videodev]
[   10.560012]
[   10.560012] but task is already holding lock:
[   10.560012]  (hdl->lock){+.+...}, at: [<f85622d3>] v4l2_ctrl_add_handler+0x35/0x91 [videodev]
[   10.560012]
[   10.560012] other info that might help us debug this:
[   10.560012]  Possible unsafe locking scenario:
[   10.560012]
[   10.560012]        CPU0
[   10.560012]        ----
[   10.560012]   lock(hdl->lock);
[   10.560012]   lock(hdl->lock);
[   10.560012]
[   10.560012]  *** DEADLOCK ***
[   10.560012]
[   10.560012]  May be due to missing lock nesting notation
[   10.560012]
[   10.560012] 3 locks held by modprobe/469:
[   10.560012]  #0:  (&__lockdep_no_validate__){......}, at: [<c03cbcfc>] __driver_attach+0x31/0x6b
[   10.560012]  #1:  (&__lockdep_no_validate__){......}, at: [<c03cbd08>] __driver_attach+0x3d/0x6b
[   10.560012]  #2:  (hdl->lock){+.+...}, at: [<f85622d3>] v4l2_ctrl_add_handler+0x35/0x91 [videodev]
[   10.560012]
[   10.560012] stack backtrace:
[   10.560012] Pid: 469, comm: modprobe Not tainted 3.8.0-rc7-main #20
[   10.560012] Call Trace:
[   10.560012]  [<c01272cb>] ? console_unlock+0x34b/0x374
[   10.560012]  [<c015b25a>] __lock_acquire+0x1314/0x138a
[   10.560012]  [<c015bc94>] ? mark_held_locks+0xa1/0xc8
[   10.560012]  [<f85604f6>] ? find_ref_lock+0x1f/0x39 [videodev]
[   10.560012]  [<c015b703>] lock_acquire+0xaf/0xcd
[   10.560012]  [<f85604f6>] ? find_ref_lock+0x1f/0x39 [videodev]
[   10.560012]  [<f85604f6>] ? find_ref_lock+0x1f/0x39 [videodev]
[   10.560012]  [<c04f8ae0>] mutex_lock_nested+0x3a/0x266
[   10.560012]  [<f85604f6>] ? find_ref_lock+0x1f/0x39 [videodev]
[   10.560012]  [<c04f8cc8>] ? mutex_lock_nested+0x222/0x266
[   10.560012]  [<c04f8cf1>] ? mutex_lock_nested+0x24b/0x266
[   10.560012]  [<f85604f6>] find_ref_lock+0x1f/0x39 [videodev]
[   10.560012]  [<f8560db7>] handler_new_ref+0x38/0x143 [videodev]
[   10.560012]  [<f856230b>] v4l2_ctrl_add_handler+0x6d/0x91 [videodev]
[   10.560012]  [<f85c2961>] cx8800_initdev+0x329/0x673 [cx8800]
[   10.560012]  [<c04fd581>] ? sub_preempt_count+0x90/0x9d
[   10.560012]  [<c04faa54>] ? _raw_spin_unlock_irqrestore+0x44/0x5b
[   10.560012]  [<c03d0acd>] ? __pm_runtime_resume+0x40/0x48
[   10.560012]  [<c02e6ca4>] pci_device_probe+0x5f/0x96
[   10.560012]  [<c03cbbe7>] driver_probe_device+0x8f/0x173
[   10.560012]  [<c03cbd1a>] __driver_attach+0x4f/0x6b
[   10.560012]  [<c03ca895>] bus_for_each_dev+0x44/0x66
[   10.560012]  [<c03cb82f>] driver_attach+0x1c/0x21
[   10.560012]  [<c03cbccb>] ? driver_probe_device+0x173/0x173
[   10.560012]  [<c03cb4a8>] bus_add_driver+0x9d/0x1c3
[   10.560012]  [<c03cbf73>] driver_register+0x77/0xe2
[   10.560012]  [<c02dac08>] ? __raw_spin_lock_init+0x26/0x49
[   10.560012]  [<c02e6d84>] __pci_register_driver+0x4a/0x4d
[   10.560012]  [<f85ca000>] ? 0xf85c9fff
[   10.560012]  [<f85ca026>] cx8800_init+0x26/0x1000 [cx8800]
[   10.560012]  [<c0101093>] do_one_initcall+0x75/0x11e
[   10.560012]  [<f85ca000>] ? 0xf85c9fff
[   10.560012]  [<f85ca000>] ? 0xf85c9fff
[   10.560012]  [<c01638ed>] load_module+0x1669/0x198d
[   10.560012]  [<c0163c96>] sys_init_module+0x85/0x87
[   10.560012]  [<c04fae5d>] syscall_call+0x7/0xb
[   10.749996] cx88[0]/0: registered device video0 [v4l2]
[   10.754891] cx88[0]/0: registered device vbi0
[   10.759328] lirc_dev: IR Remote Control driver registered, major 250
[   10.763449] rc rc0: lirc_dev: driver ir-lirc-codec (cx88xx) registered at minor = 0
[   10.765473] IR LIRC bridge handler initialized
[   10.778474] cx88/2: cx2388x dvb driver version 0.0.9 loaded
[   10.780512] cx88/2: registering cx8802 driver, type: dvb access: shared
[   10.785004] cx88[0]/2: subsystem: 0070:6906, board: Hauppauge WinTV-HVR4000(Lite) DVB-S/S2 [card=69]
[   10.787046] cx88[0]/2: cx2388x based DVB/ATSC card
[   10.794436] cx8802_alloc_frontends() allocating 1 frontend(s)
[   10.812315] DVB: registering new adapter (cx88[0])
[   10.814427] cx88-mpeg driver manager 0000:05:05.2: DVB: registering adapter 0 frontend 0 (Conexant CX24116/CX24118)...


Affected kernels
=============
at least 3.6.*, 3.7.*, 3.8.-rc*

Hardware / Software
================
opensuse 12.1 running on an AOpen i915GMm-hfs, Pentium M Dothan, 2GB system.

DVB-S hardware
=============
Hauppauge WinTV Nova HD-S2:

05:05.0 Multimedia video controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
         Subsystem: Hauppauge computer works Inc. Device 6906
         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
         Latency: 32 (5000ns min, 13750ns max), Cache Line Size: 32 bytes
         Interrupt: pin A routed to IRQ 17
         Region 0: Memory at d0000000 (32-bit, non-prefetchable) [size=16M]
         Capabilities: [44] Vital Product Data
                 Unknown large resource type 04, will not decode more.
         Capabilities: [4c] Power Management version 2
                 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                 Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
         Kernel driver in use: cx8800

05:05.1 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05)
         Subsystem: Hauppauge computer works Inc. Device 6906
         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
         Latency: 32 (1000ns min, 63750ns max), Cache Line Size: 32 bytes
         Interrupt: pin A routed to IRQ 12
         Region 0: Memory at d1000000 (32-bit, non-prefetchable) [size=16M]
         Capabilities: [4c] Power Management version 2
                 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                 Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-

05:05.2 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)
         Subsystem: Hauppauge computer works Inc. Device 6906
         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
         Latency: 32 (1500ns min, 22000ns max), Cache Line Size: 32 bytes
         Interrupt: pin A routed to IRQ 17
         Region 0: Memory at d2000000 (32-bit, non-prefetchable) [size=16M]
         Capabilities: [4c] Power Management version 2
                 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                 Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
         Kernel driver in use: cx88-mpeg driver manager

05:05.4 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [IR Port] (rev 05)
         Subsystem: Hauppauge computer works Inc. Device 6906
         Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
         Latency: 32 (1500ns min, 63750ns max), Cache Line Size: 32 bytes
         Interrupt: pin A routed to IRQ 12
         Region 0: Memory at d3000000 (32-bit, non-prefetchable) [size=16M]
         Capabilities: [4c] Power Management version 2
                 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                 Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-


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