On Sun, Sep 14, 2014 at 09:12:08AM +0800, Amos Kong wrote:
...
quoted
quoted
quoted
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index c591d7e..b5d1b6f 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -195,8 +195,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
mutex_unlock(&rng_mutex);
- if (need_resched())
- schedule_timeout_interruptible(1);
+ schedule_timeout_interruptible(10);
Problem only occurred in non-smp guest, we can improve it to:
if(!is_smp())
schedule_timeout_interruptible(10);
is_smp() is only available for arm arch, we need a general one.
quoted
quoted
quoted
if (signal_pending(current)) {
err = -ERESTARTSYS;
--
--
Amos.