Any comments would be appreciated.
Description: Use msleep_interruptible() instead of schedule_timeout() to
guarantee the task delays as expected.
Signed-off-by: Nishanth Aravamudan <[email protected]>
Signed-off-by: Maximilian Attems <[email protected]>
---
linux-2.6.9-rc2-bk7-max/drivers/media/video/bw-qcam.c | 12 ++++--------
1 files changed, 4 insertions(+), 8 deletions(-)
diff -puN drivers/media/video/bw-qcam.c~msleep_interruptible-drivers_media_video_bw-qcam drivers/media/video/bw-qcam.c
--- linux-2.6.9-rc2-bk7/drivers/media/video/bw-qcam.c~msleep_interruptible-drivers_media_video_bw-qcam 2004-09-21 21:16:53.000000000 +0200
+++ linux-2.6.9-rc2-bk7-max/drivers/media/video/bw-qcam.c 2004-09-21 21:16:53.000000000 +0200
@@ -249,8 +249,7 @@ static int qc_waithand(struct qcam_devic
if(runs++>maxpoll)
{
- current->state=TASK_INTERRUPTIBLE;
- schedule_timeout(HZ/200);
+ msleep_interruptible(5);
}
if(runs>(maxpoll+1000)) /* 5 seconds */
return -1;
@@ -269,8 +268,7 @@ static int qc_waithand(struct qcam_devic
if(runs++>maxpoll)
{
- current->state=TASK_INTERRUPTIBLE;
- schedule_timeout(HZ/200);
+ msleep_interruptible(5);
}
if(runs++>(maxpoll+1000)) /* 5 seconds */
return -1;
@@ -302,8 +300,7 @@ static unsigned int qc_waithand2(struct
if(runs++>maxpoll)
{
- current->state=TASK_INTERRUPTIBLE;
- schedule_timeout(HZ/200);
+ msleep_interruptible(5);
}
if(runs++>(maxpoll+1000)) /* 5 seconds */
return 0;
@@ -669,8 +666,7 @@ long qc_capture(struct qcam_device * q,
time will be 240 / 200 = 1.2 seconds. The compile-time
default is to yield every 4 lines. */
if (i >= yield) {
- current->state=TASK_INTERRUPTIBLE;
- schedule_timeout(HZ/200);
+ msleep_interruptible(5);
yield = i + yieldlines;
}
}
_