Re: random: Wake up writers when random pools are zapped

2018-05-19 Thread Herbert Xu
On Sat, May 19, 2018 at 05:55:19PM -0400, Theodore Y. Ts'o wrote:
>
> Out of curiosity, how/when were you using RNDCLEARPOOL/RNDZAPENTCNT?
> Hopefully it was only testing hw_random drivers, or some such?

I wasn't actually using it myself.  Someone else filed a bug
against RHEL complaining about this and I was just clearing my
decks :)

Cheers,
-- 
Email: Herbert Xu 
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt


Re: random: Wake up writers when random pools are zapped

2018-05-19 Thread Herbert Xu
On Sat, May 19, 2018 at 05:55:19PM -0400, Theodore Y. Ts'o wrote:
>
> Out of curiosity, how/when were you using RNDCLEARPOOL/RNDZAPENTCNT?
> Hopefully it was only testing hw_random drivers, or some such?

I wasn't actually using it myself.  Someone else filed a bug
against RHEL complaining about this and I was just clearing my
decks :)

Cheers,
-- 
Email: Herbert Xu 
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt


Re: random: Wake up writers when random pools are zapped

2018-05-19 Thread Theodore Y. Ts'o
On Fri, May 18, 2018 at 02:57:36PM +0800, Herbert Xu wrote:
> As it is when the pool is zapped with RNDCLEARPOOL writers are
> not woken up and therefore the pool may remain in the empty state
> indefinitely.
> 
> This patch wakes them up unless the write threshold is set to zero.
> 
> Signed-off-by: Herbert Xu 

Thanks, applied.

Out of curiosity, how/when were you using RNDCLEARPOOL/RNDZAPENTCNT?
Hopefully it was only testing hw_random drivers, or some such?

- Ted


Re: random: Wake up writers when random pools are zapped

2018-05-19 Thread Theodore Y. Ts'o
On Fri, May 18, 2018 at 02:57:36PM +0800, Herbert Xu wrote:
> As it is when the pool is zapped with RNDCLEARPOOL writers are
> not woken up and therefore the pool may remain in the empty state
> indefinitely.
> 
> This patch wakes them up unless the write threshold is set to zero.
> 
> Signed-off-by: Herbert Xu 

Thanks, applied.

Out of curiosity, how/when were you using RNDCLEARPOOL/RNDZAPENTCNT?
Hopefully it was only testing hw_random drivers, or some such?

- Ted


random: Wake up writers when random pools are zapped

2018-05-18 Thread Herbert Xu
As it is when the pool is zapped with RNDCLEARPOOL writers are
not woken up and therefore the pool may remain in the empty state
indefinitely.

This patch wakes them up unless the write threshold is set to zero.

Signed-off-by: Herbert Xu 

diff --git a/drivers/char/random.c b/drivers/char/random.c
index e027e7f..32b7010 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1874,6 +1874,10 @@ static long random_ioctl(struct file *f, unsigned int 
cmd, unsigned long arg)
return -EPERM;
input_pool.entropy_count = 0;
blocking_pool.entropy_count = 0;
+   if (random_write_wakeup_bits) {
+   wake_up_interruptible(_write_wait);
+   kill_fasync(, SIGIO, POLL_OUT);
+   }
return 0;
default:
return -EINVAL;
-- 
Email: Herbert Xu 
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt


random: Wake up writers when random pools are zapped

2018-05-18 Thread Herbert Xu
As it is when the pool is zapped with RNDCLEARPOOL writers are
not woken up and therefore the pool may remain in the empty state
indefinitely.

This patch wakes them up unless the write threshold is set to zero.

Signed-off-by: Herbert Xu 

diff --git a/drivers/char/random.c b/drivers/char/random.c
index e027e7f..32b7010 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1874,6 +1874,10 @@ static long random_ioctl(struct file *f, unsigned int 
cmd, unsigned long arg)
return -EPERM;
input_pool.entropy_count = 0;
blocking_pool.entropy_count = 0;
+   if (random_write_wakeup_bits) {
+   wake_up_interruptible(_write_wait);
+   kill_fasync(, SIGIO, POLL_OUT);
+   }
return 0;
default:
return -EINVAL;
-- 
Email: Herbert Xu 
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt