Re: Bug#619827: linux-source-2.6.38: [linux-dvb] cx88-blackbird broken (since 2.6.37)
Ben Hutchings <ben <at> decadent.org.uk> writes:
>
> On Sun, 2011-03-27 at 17:06 +0200, Huber Andreas wrote:
> > 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.
>
> Could you test whether this patch fixes the problem? Instructions for
> rebuilding the kernel package are at
> <http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official>.
>
> Ben.
>
Hi Ben, this patch fixes the deadlock during opening of the MPEG device, thanks.
But I did some testing and ran into another deadlock while unloading the
(patched) driver ...
rmmod cx88_blackbird
...
cx88/2: unregistering cx8802 driver, type: blackbird access: shared
cx88[0]/2: subsystem: 0070:9601, board: Hauppauge WinTV-HVR1300
DVB-T/Hybrid MPEG Encoder [card=56]
cx88[1]/2: subsystem: 0070:9601, board: Hauppauge WinTV-HVR1300
DVB-T/Hybrid MPEG Encoder [card=56]
INFO: task rmmod:11233 blocked for more than 120 seconds.
...
rmmod D ffff88005e9086c0 0 11233 5297 0x00000000
...
Call Trace:
[<ffffffff8131fae5>] ? __mutex_lock_common.clone.5+0x12a/0x195
[<ffffffff810eb3d9>] ? kfree+0xc1/0xda
[<ffffffff8131f9a2>] ? mutex_lock+0x1a/0x33
[<ffffffffa0b3a809>] ? cx8802_blackbird_remove+0x27/0x3d [cx88_blackbird]
[<ffffffffa08671f2>] ? cx8802_unregister_driver+0xf1/0x1bd [cx8802]
[<ffffffff810730a9>] ? sys_delete_module+0x1df/0x251
[<ffffffff81009912>] ? system_call_fastpath+0x16/0x1b
...
And there seems to be a new problem:
I have 2 identical WinTV-HVR1300 Cards ...
[ 6.876614] cx88[0]/0: registered device video0 [v4l2]
[ 6.889815] cx88[1]/0: registered device video1 [v4l2]
[ 10.161998] cx88[0]/2: registered device video2 [mpeg]
[ 13.286062] cx88[1]/2: registered device video3 [mpeg]
Here's what I experienced so far:
1) booting kernel 2.6.36-trunk-amd64 from debian
both cards are able to stream their mpeg encoded tv streams through
the mpeg devices (in my case /dev/video2 and /dev/video3)
2) after reboot into kernel 2.6.38
/dev/video2 still works fine; tuning to different channels works!
/dev/video3 is inaccessible (after doing exactly the same initialization
as before) ...
dd if=/dev/video3 of=/tmp/test.mpg
dd: reading `/dev/video3': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 2.74267 s, 0.0 kB/s
Do you think this behavior could be BKL conversion related?
Reply to: