lkml.org 
[lkml]   [2022]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 009/237] random: remove preempt disabled region
    Date
    From: Ingo Molnar <mingo@elte.hu>

    commit b34fbaa9289328c7aec67d2b8b8b7d02bc61c67d upstream.

    No need to keep preemption disabled across the whole function.

    mix_pool_bytes() uses a spin_lock() to protect the pool and there are
    other places like write_pool() whhich invoke mix_pool_bytes() without
    disabling preemption.
    credit_entropy_bits() is invoked from other places like
    add_hwgenerator_randomness() without disabling preemption.

    Before commit 95b709b6be49 ("random: drop trickle mode") the function
    used __this_cpu_inc_return() which would require disabled preemption.
    The preempt_disable() section was added in commit 43d5d3018c37 ("[PATCH]
    random driver preempt robustness", history tree). It was claimed that
    the code relied on "vt_ioctl() being called under BKL".

    Cc: "Theodore Ts'o" <tytso@mit.edu>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    [bigeasy: enhance the commit message]
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/char/random.c | 4 ----
    1 file changed, 4 deletions(-)

    --- a/drivers/char/random.c
    +++ b/drivers/char/random.c
    @@ -1136,8 +1136,6 @@ static void add_timer_randomness(struct
    } sample;
    long delta, delta2, delta3;

    - preempt_disable();
    -
    sample.jiffies = jiffies;
    sample.cycles = random_get_entropy();
    sample.num = num;
    @@ -1175,8 +1173,6 @@ static void add_timer_randomness(struct
    * and limit entropy entimate to 12 bits.
    */
    credit_entropy_bits(r, min_t(int, fls(delta>>1), 11));
    -
    - preempt_enable();
    }

    void add_input_randomness(unsigned int type, unsigned int code,

    \
     
     \ /
      Last update: 2022-06-23 19:24    [W:4.133 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site