lkml.org 
[lkml]   [2012]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 42/65] random: Add comment to random_initialize()
    Date
    From: Greg KH <gregkh@linuxfoundation.org>

    3.4-stable review patch. If anyone has any objections, please let me know.

    ------------------

    From: Tony Luck <tony.luck@intel.com>

    commit cbc96b7594b5691d61eba2db8b2ea723645be9ca upstream.

    Many platforms have per-machine instance data (serial numbers,
    asset tags, etc.) squirreled away in areas that are accessed
    during early system bringup. Mixing this data into the random
    pools has a very high value in providing better random data,
    so we should allow (and even encourage) architecture code to
    call add_device_randomness() from the setup_arch() paths.

    However, this limits our options for internal structure of
    the random driver since random_initialize() is not called
    until long after setup_arch().

    Add a big fat comment to rand_initialize() spelling out
    this requirement.

    Suggested-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/char/random.c | 10 ++++++++++
    1 file changed, 10 insertions(+)

    --- a/drivers/char/random.c
    +++ b/drivers/char/random.c
    @@ -1087,6 +1087,16 @@ static void init_std_data(struct entropy
    mix_pool_bytes(r, utsname(), sizeof(*(utsname())), NULL);
    }

    +/*
    + * Note that setup_arch() may call add_device_randomness()
    + * long before we get here. This allows seeding of the pools
    + * with some platform dependent data very early in the boot
    + * process. But it limits our options here. We must use
    + * statically allocated structures that already have all
    + * initializations complete at compile time. We should also
    + * take care not to overwrite the precious per platform data
    + * we were given.
    + */
    static int rand_initialize(void)
    {
    init_std_data(&input_pool);



    \
     
     \ /
      Last update: 2012-08-14 05:21    [W:3.630 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site