|
|
@@ -760,10 +760,17 @@ static int khvcd(void *unused)
|
|
|
if (poll_mask == 0)
|
|
|
schedule();
|
|
|
else {
|
|
|
+ unsigned long j_timeout;
|
|
|
+
|
|
|
if (timeout < MAX_TIMEOUT)
|
|
|
timeout += (timeout >> 6) + 1;
|
|
|
|
|
|
- msleep_interruptible(timeout);
|
|
|
+ /*
|
|
|
+ * We don't use msleep_interruptible otherwise
|
|
|
+ * "kick" will fail to wake us up
|
|
|
+ */
|
|
|
+ j_timeout = msecs_to_jiffies(timeout) + 1;
|
|
|
+ schedule_timeout_interruptible(j_timeout);
|
|
|
}
|
|
|
}
|
|
|
__set_current_state(TASK_RUNNING);
|