[linux-dvb] problems and workaround when tuning to a channel with DD enabled

Wolfgang Rohdewald wolfgang at rohdewald.de
Mon Jun 6 17:51:21 CEST 2005


On Montag 06 Juni 2005 16:59, Johannes Stezenbach wrote:
> On Mon, Jun 06, 2005 at 09:31:30AM +0200, Wolfgang Rohdewald wrote:
> > Jun  6 08:24:10 mm kernel: dvb-ttpci: warning: timeout waiting in BlitBitmap: -512, 1
> ...
> 
> The code looks broken. If ret == -ERESTARTSYS (is what you get), then it
> is no timeout, but wait_event_interruptible_timeout() got interrupted.

Yup, -512 is ERESTARTSYS

> I bet vdr is sending some signals around.
> 
> Try using wait_event_timeout(..., HZ/5), i.e. non-interruptible but
> with a sensible timeout. 10*HZ is much too long, IMHO.

That works nicely so far. Should I try to find out what signal was interrupting?
How could I do that? I know almost nothing about kernel programming.

the new patch:
--- linux-2.6.11.11/drivers/media/dvb/ttpci/av7110_hw.c 2005-06-06 09:08:08.000000000 +0200
+++ linux-2.6.12/drivers/media/dvb/ttpci/av7110_hw.c    2005-06-06 17:43:02.000000000 +0200
@@ -884,8 +884,8 @@

        BUG_ON (av7110->bmp_state == BMP_NONE);

-       ret = wait_event_interruptible_timeout(av7110->bmpq,
-                               av7110->bmp_state != BMP_LOADING, 10*HZ);
+       ret = wait_event_timeout(av7110->bmpq,
+                               av7110->bmp_state != BMP_LOADING, HZ/5);
        if (ret == -ERESTARTSYS || ret == 0) {
                printk("dvb-ttpci: warning: timeout waiting in BlitBitmap: %d, %d\n",
                       ret, av7110->bmp_state);

-- 
Wolfgang




More information about the linux-dvb mailing list