Package: linux-source-2.6.38 Version: 2.6.38-1 Severity: important Tags: upstream
[Symptom] Processes that try to open a cx88-blackbird driven MPEG device will hang up. [Cause] Nestet mutex_locks (which are not allowed) result in a deadlock. [Details] There has been resent work on removing BKL (BigKernelLock) calls from kernel code. (see http://kernelnewbies.org/BigKernelLock) This was not properly done for the cx88-blackbird driver: Source-File: drivers/media/video/cx88/cx88-blackbird.c Function: int mpeg_open(struct file *file) Problem: the calls to drv->request_acquire(drv); and drv->request_release(drv); will hang because they try to lock a mutex that has already been locked by a previouse call to mutex_lock(&dev->core->lock) ... 1050 static int mpeg_open(struct file *file) 1051 { [...] 1060 mutex_lock(&dev->core->lock); // MUTEX LOCKED !!!!!!!!!!!!!!!! 1061 1062 /* Make sure we can acquire the hardware */ 1063 drv = cx8802_get_driver(dev, CX88_MPEG_BLACKBIRD); 1064 if (drv) { 1065 err = drv->request_acquire(drv); // HANGS !!!!!!!!!!!!!!!!!!! 1066 if(err != 0) { 1067 dprintk(1,"%s: Unable to acquire hardware, %d\n", __func__, err); 1068 mutex_unlock(&dev->core->lock);; 1069 return err; 1070 } 1071 } [...] Here's the relevant kernel log extract (Linux version 2.6.38-1-amd64 (Debian 2.6.38-1)) ... Mar 24 21:25:10 xen kernel: [ 241.472067] INFO: task v4l_id:1000 blocked for more than 120 seconds. Mar 24 21:25:10 xen kernel: [ 241.478845] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. Mar 24 21:25:10 xen kernel: [ 241.482412] v4l_id D ffff88006bcb6540 0 1000 1 0x00000000 Mar 24 21:25:10 xen kernel: [ 241.486031] ffff88006bcb6540 0000000000000086 ffff880000000001 ffff88006981c380 Mar 24 21:25:10 xen kernel: [ 241.489694] 0000000000013700 ffff88006be5bfd8 ffff88006be5bfd8 0000000000013700 Mar 24 21:25:10 xen kernel: [ 241.493301] ffff88006bcb6540 ffff88006be5a010 ffff88006bcb6540 000000016be5a000 Mar 24 21:25:10 xen kernel: [ 241.496766] Call Trace: Mar 24 21:25:10 xen kernel: [ 241.500145] [<ffffffff81321c4a>] ? __mutex_lock_common+0x127/0x193 Mar 24 21:25:10 xen kernel: [ 241.503630] [<ffffffff81321d82>] ? mutex_lock+0x1a/0x33 Mar 24 21:25:10 xen kernel: [ 241.507145] [<ffffffffa09dd155>] ? cx8802_request_acquire+0x66/0xc6 [cx8802] Mar 24 21:25:10 xen kernel: [ 241.510699] [<ffffffffa0aab7f2>] ? mpeg_open+0x7a/0x1fc [cx88_blackbird] Mar 24 21:25:10 xen kernel: [ 241.514279] [<ffffffff8123bfb6>] ? kobj_lookup+0x139/0x173 Mar 24 21:25:10 xen kernel: [ 241.517856] [<ffffffffa062d5fd>] ? v4l2_open+0xb3/0xdf [videodev] regards Andi Huber -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.36-trunk-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.ISO-8859-15, LC_CTYPE=en_US.ISO-8859-15 (charmap=ISO-8859-15) Shell: /bin/sh linked to /bin/dash Versions of packages linux-source-2.6.38 depends on: ii binutils 2.20.1-16 The GNU assembler, linker and bina ii bzip2 1.0.5-6 high-quality block-sorting file co Versions of packages linux-source-2.6.38 recommends: ii gcc 4:4.4.5-1 The GNU C compiler ii libc6-dev [libc-dev] 2.11.2-10 Embedded GNU C Library: Developmen ii make 3.81-8 An utility for Directing compilati Versions of packages linux-source-2.6.38 suggests: pn kernel-package <none> (no description available) ii libncurses5-dev [ncurses- 5.8+20110307-1 developer's libraries for ncurses pn libqt3-mt-dev <none> (no description available) -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org