diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-07-10 20:08:33 +0200 |
---|---|---|
committer | Hans Verkuil <hverkuil@xs4all.nl> | 2007-07-10 20:08:33 +0200 |
commit | 07d2ac2f93c5451bcf89086cff7a2ab33fda293d (patch) | |
tree | 980e025223f011cbe54a316f989650ceddc568ca /linux | |
parent | e76da438552c6c94ab8fdf1216afead8a29405fc (diff) | |
download | mediapointer-dvb-s2-07d2ac2f93c5451bcf89086cff7a2ab33fda293d.tar.gz mediapointer-dvb-s2-07d2ac2f93c5451bcf89086cff7a2ab33fda293d.tar.bz2 |
ivtv: fix missing signal_pending check.
From: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Diffstat (limited to 'linux')
-rw-r--r-- | linux/drivers/media/video/ivtv/ivtv-streams.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/linux/drivers/media/video/ivtv/ivtv-streams.c b/linux/drivers/media/video/ivtv/ivtv-streams.c index d538efaf6..287117187 100644 --- a/linux/drivers/media/video/ivtv/ivtv-streams.c +++ b/linux/drivers/media/video/ivtv/ivtv-streams.c @@ -807,7 +807,6 @@ int ivtv_stop_v4l2_encode_stream(struct ivtv_stream *s, int gop_end) then = jiffies; /* Make sure DMA is complete */ add_wait_queue(&s->waitq, &wait); - set_current_state(TASK_INTERRUPTIBLE); do { /* check if DMA is pending */ if ((s->type == IVTV_ENC_STREAM_TYPE_MPG) && /* MPG Only */ @@ -822,9 +821,7 @@ int ivtv_stop_v4l2_encode_stream(struct ivtv_stream *s, int gop_end) } else if (read_reg(IVTV_REG_DMASTATUS) & 0x02) { break; } - - ivtv_sleep_timeout(HZ / 100, 1); - } while (then + HZ * 2 > jiffies); + } while (!ivtv_sleep_timeout(HZ / 100, 1) && then + HZ * 2 > jiffies); set_current_state(TASK_RUNNING); remove_wait_queue(&s->waitq, &wait); |