• J
    random: unify early init crng load accounting · da792c6d
    Jason A. Donenfeld 提交于
    crng_fast_load() and crng_slow_load() have different semantics:
    
    - crng_fast_load() xors and accounts with crng_init_cnt.
    - crng_slow_load() hashes and doesn't account.
    
    However add_hwgenerator_randomness() can afford to hash (it's called
    from a kthread), and it should account. Additionally, ones that can
    afford to hash don't need to take a trylock but can take a normal lock.
    So, we combine these into one function, crng_pre_init_inject(), which
    allows us to control these in a uniform way. This will make it simpler
    later to simplify this all down when the time comes for that.
    
    Cc: Theodore Ts'o <tytso@mit.edu>
    Reviewed-by: NDominik Brodowski <linux@dominikbrodowski.net>
    Reviewed-by: NEric Biggers <ebiggers@google.com>
    Signed-off-by: NJason A. Donenfeld <Jason@zx2c4.com>
    da792c6d
random.c 48.1 KB