• L
    Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · 0891ad82
    Linus Torvalds 提交于
    Pull /dev/random changes from Ted Ts'o:
     "The /dev/random changes for 3.13 including a number of improvements in
      the following areas: performance, avoiding waste of entropy, better
      tracking of entropy estimates, support for non-x86 platforms that have
      a register which can't be used for fine-grained timekeeping, but which
      might be good enough for the random driver.
    
      Also add some printk's so that we can see how quickly /dev/urandom can
      get initialized, and when programs try to use /dev/urandom before it
      is fully initialized (since this could be a security issue).  This
      shouldn't be an issue on x86 desktop/laptops --- a test on my Lenovo
      T430s laptop shows that /dev/urandom is getting fully initialized
      approximately two seconds before the root file system is mounted
      read/write --- this may be an issue with ARM and MIPS embedded/mobile
      systems, though.  These printk's will be a useful canary before
      potentially adding a future change to start blocking processes which
      try to read from /dev/urandom before it is initialized, which is
      something FreeBSD does already for security reasons, and which
      security folks have been agitating for Linux to also adopt"
    
    * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
      random: add debugging code to detect early use of get_random_bytes()
      random: initialize the last_time field in struct timer_rand_state
      random: don't zap entropy count in rand_initialize()
      random: printk notifications for urandom pool initialization
      random: make add_timer_randomness() fill the nonblocking pool first
      random: convert DEBUG_ENT to tracepoints
      random: push extra entropy to the output pools
      random: drop trickle mode
      random: adjust the generator polynomials in the mixing function slightly
      random: speed up the fast_mix function by a factor of four
      random: cap the rate which the /dev/urandom pool gets reseeded
      random: optimize the entropy_store structure
      random: optimize spinlock use in add_device_randomness()
      random: fix the tracepoint for get_random_bytes(_arch)
      random: account for entropy loss due to overwrites
      random: allow fractional bits to be tracked
      random: statically compute poolbitshift, poolbytes, poolbits
      random: mix in architectural randomness earlier in extract_buf()
    0891ad82
random.c 50.5 KB