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