diff options
Diffstat (limited to 'drivers/media/test-drivers/vivid/vivid-sdr-cap.c')
-rw-r--r-- | drivers/media/test-drivers/vivid/vivid-sdr-cap.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/media/test-drivers/vivid/vivid-sdr-cap.c b/drivers/media/test-drivers/vivid/vivid-sdr-cap.c index 2b7522e16efc..a1e52708b7ca 100644 --- a/drivers/media/test-drivers/vivid/vivid-sdr-cap.c +++ b/drivers/media/test-drivers/vivid/vivid-sdr-cap.c @@ -142,7 +142,7 @@ static int vivid_thread_sdr_cap(void *data) break; if (!mutex_trylock(&dev->mutex)) { - schedule_timeout_uninterruptible(1); + schedule(); continue; } @@ -201,7 +201,9 @@ static int vivid_thread_sdr_cap(void *data) next_jiffies_since_start = jiffies_since_start; wait_jiffies = next_jiffies_since_start - jiffies_since_start; - schedule_timeout_interruptible(wait_jiffies ? wait_jiffies : 1); + while (jiffies - cur_jiffies < wait_jiffies && + !kthread_should_stop()) + schedule(); } dprintk(dev, 1, "SDR Capture Thread End\n"); return 0; |