Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 88c730da authored by Matt Mackall's avatar Matt Mackall Committed by Linus Torvalds
Browse files

random: consolidate wakeup logic



Signed-off-by: default avatarMatt Mackall <mpm@selenic.com>
Cc: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 90b75ee5
Loading
Loading
Loading
Loading
+4 −16
Original line number Diff line number Diff line
@@ -540,6 +540,10 @@ static void credit_entropy_store(struct entropy_store *r, int nbits)
				  nbits, r->name);
	}

	/* should we wake readers? */
	if (r == &input_pool && r->entropy_count >= random_read_wakeup_thresh)
		wake_up_interruptible(&random_read_wait);

	spin_unlock_irqrestore(&r->lock, flags);
}

@@ -624,10 +628,6 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
		credit_entropy_store(&input_pool,
				     min_t(int, fls(delta>>1), 11));
	}

	if (input_pool.entropy_count >= random_read_wakeup_thresh)
		wake_up_interruptible(&random_read_wait);

out:
	preempt_enable();
}
@@ -1081,12 +1081,6 @@ static int random_ioctl(struct inode *inode, struct file *file,
		if (get_user(ent_count, p))
			return -EFAULT;
		credit_entropy_store(&input_pool, ent_count);
		/*
		 * Wake up waiting processes if we have enough
		 * entropy.
		 */
		if (input_pool.entropy_count >= random_read_wakeup_thresh)
			wake_up_interruptible(&random_read_wait);
		return 0;
	case RNDADDENTROPY:
		if (!capable(CAP_SYS_ADMIN))
@@ -1102,12 +1096,6 @@ static int random_ioctl(struct inode *inode, struct file *file,
		if (retval < 0)
			return retval;
		credit_entropy_store(&input_pool, ent_count);
		/*
		 * Wake up waiting processes if we have enough
		 * entropy.
		 */
		if (input_pool.entropy_count >= random_read_wakeup_thresh)
			wake_up_interruptible(&random_read_wait);
		return 0;
	case RNDZAPENTCNT:
	case RNDCLEARPOOL: