LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: "Tobin C. Harding" <me@tobin.cc> To: linux-kernel@vger.kernel.org Cc: "Tobin C. Harding" <me@tobin.cc>, Linus Torvalds <torvalds@linux-foundation.org>, Randy Dunlap <rdunlap@infradead.org>, Steven Rostedt <rostedt@goodmis.org>, Kees Cook <keescook@chromium.org>, Anna-Maria Gleixner <anna-maria@linutronix.de>, Andrew Morton <akpm@linux-foundation.org>, "Theodore Ts'o" <tytso@mit.edu>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Arnd Bergmann <arnd@arndb.de> Subject: [PATCH v3 3/4] vsprintf: Use hw RNG for ptr_key Date: Fri, 4 May 2018 09:07:40 +1000 [thread overview] Message-ID: <1525388861-27018-4-git-send-email-me@tobin.cc> (raw) In-Reply-To: <1525388861-27018-1-git-send-email-me@tobin.cc> Currently we must wait for enough entropy to become available before hashed pointers can be printed. We can remove this wait by using the hw RNG if available. Use hw RNG to get keying material. Suggested-by: Kees Cook <keescook@chromium.org> Signed-off-by: Tobin C. Harding <me@tobin.cc> --- lib/vsprintf.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/vsprintf.c b/lib/vsprintf.c index b82f0c6c2aec..3697a19c2b25 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -1657,9 +1657,8 @@ char *device_node_string(char *buf, char *end, struct device_node *dn, static bool have_filled_random_ptr_key __read_mostly; static siphash_key_t ptr_key __read_mostly; -static void fill_random_ptr_key(struct random_ready_callback *unused) +static void ptr_key_ready(void) { - get_random_bytes(&ptr_key, sizeof(ptr_key)); /* * have_filled_random_ptr_key==true is dependent on get_random_bytes(). * ptr_to_id() needs to see have_filled_random_ptr_key==true @@ -1669,14 +1668,28 @@ static void fill_random_ptr_key(struct random_ready_callback *unused) WRITE_ONCE(have_filled_random_ptr_key, true); } +static void fill_random_ptr_key(struct random_ready_callback *unused) +{ + get_random_bytes(&ptr_key, sizeof(ptr_key)); + ptr_key_ready(); +} + static struct random_ready_callback random_ready = { .func = fill_random_ptr_key }; static int __init initialize_ptr_random(void) { - int ret = add_random_ready_callback(&random_ready); + int ret; + int key_size = sizeof(ptr_key); + + /* Use hw RNG if available */ + if (get_random_bytes_arch(&ptr_key, key_size) == key_size) { + ptr_key_ready(); + return 0; + } + ret = add_random_ready_callback(&random_ready); if (!ret) { return 0; } else if (ret == -EALREADY) { -- 2.7.4
next prev parent reply other threads:[~2018-05-03 23:07 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-05-03 23:07 [PATCH v3 0/4] enable early printing of hashed pointers Tobin C. Harding 2018-05-03 23:07 ` [PATCH v3 1/4] random: Fix whitespace pre random-bytes work Tobin C. Harding 2018-05-03 23:07 ` [PATCH v3 2/4] random: Return nbytes filled from hw RNG Tobin C. Harding 2018-05-03 23:07 ` Tobin C. Harding [this message] 2018-05-03 23:07 ` [PATCH v3 4/4] vsprintf: Add command line option debug_early_boot Tobin C. Harding 2018-05-04 0:09 ` Steven Rostedt 2018-05-04 2:23 ` [PATCH v3 0/4] enable early printing of hashed pointers Theodore Y. Ts'o 2018-05-04 3:50 ` Tobin C. Harding
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1525388861-27018-4-git-send-email-me@tobin.cc \ --to=me@tobin.cc \ --cc=akpm@linux-foundation.org \ --cc=anna-maria@linutronix.de \ --cc=arnd@arndb.de \ --cc=gregkh@linuxfoundation.org \ --cc=keescook@chromium.org \ --cc=linux-kernel@vger.kernel.org \ --cc=rdunlap@infradead.org \ --cc=rostedt@goodmis.org \ --cc=torvalds@linux-foundation.org \ --cc=tytso@mit.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).