diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-07-03 08:29:30 -0500 |
---|---|---|
committer | Clark Williams <williams@redhat.com> | 2012-01-16 13:00:06 -0600 |
commit | f37247b47c8afcd584900c967bfef9a5e71339f2 (patch) | |
tree | f6d9215e88fdf850b30be25eb50c24b7bfd0d70e /drivers | |
parent | 9c6f143dbcd5b63db4a33a2903033a9ebf9352b3 (diff) |
drivers: random: Reduce preempt disabled region
No need to keep preemption disabled across the whole function.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/random.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/char/random.c b/drivers/char/random.c index 6035ab8d5ef7..786a856d59ba 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -633,8 +633,11 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num) preempt_disable(); /* if over the trickle threshold, use only 1 in 4096 samples */ if (input_pool.entropy_count > trickle_thresh && - ((__this_cpu_inc_return(trickle_count) - 1) & 0xfff)) - goto out; + ((__this_cpu_inc_return(trickle_count) - 1) & 0xfff)) { + preempt_enable(); + return; + } + preempt_enable(); sample.jiffies = jiffies; sample.cycles = get_cycles(); @@ -676,8 +679,6 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num) credit_entropy_bits(&input_pool, min_t(int, fls(delta>>1), 11)); } -out: - preempt_enable(); } void add_input_randomness(unsigned int type, unsigned int code, |