diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-05 03:53:25 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-11-05 03:53:25 -0800 |
| commit | d472b9dc1fc7783e4ec969629e6967462be7f062 (patch) | |
| tree | cbaeda1a7670a195570787960b3094c656e52ee7 | |
| parent | 82670e1f1c08d668645b80bd7d80e1fdf8f3eeee (diff) | |
| parent | 81297f9dea7f4e9203f2b689d649ce4f5a898593 (diff) | |
Merge http://gkernel.bkbits.net/misc-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
| -rw-r--r-- | drivers/char/i810_rng.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/char/i810_rng.c b/drivers/char/i810_rng.c index 8bc0fe1ff8d3..3dfd9a456cf9 100644 --- a/drivers/char/i810_rng.c +++ b/drivers/char/i810_rng.c @@ -27,6 +27,7 @@ #include <linux/miscdevice.h> #include <linux/smp_lock.h> #include <linux/mm.h> +#include <linux/delay.h> #include <asm/io.h> #include <asm/uaccess.h> @@ -243,8 +244,13 @@ static ssize_t rng_dev_read (struct file *filp, char *buf, size_t size, if (filp->f_flags & O_NONBLOCK) return ret ? : -EAGAIN; - current->state = TASK_INTERRUPTIBLE; - schedule_timeout(1); + if (need_resched()) + { + current->state = TASK_INTERRUPTIBLE; + schedule_timeout(1); + } + else + udelay(200); if (signal_pending (current)) return ret ? : -ERESTARTSYS; |
