On Mon, 28 May 2018 11:46:41 +1000 "Tobin C. Harding" <[email protected]> wrote:
> 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. > > Cc: Steven Rostedt (VMware) <[email protected]> Reviewed-by: Steven Rostedt (VMware) <[email protected]> -- Steve > Suggested-by: Kees Cook <[email protected]> > Signed-off-by: Tobin C. Harding <[email protected]> > --- > lib/vsprintf.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/lib/vsprintf.c b/lib/vsprintf.c > index 23920c5ff728..1545a8aa26a9 100644 > --- a/lib/vsprintf.c > +++ b/lib/vsprintf.c > @@ -1693,8 +1693,16 @@ static struct random_ready_callback random_ready = { > > static int __init initialize_ptr_random(void) > { > - int ret = add_random_ready_callback(&random_ready); > + int key_size = sizeof(ptr_key); > + int ret; > + > + /* Use hw RNG if available */ > + if (get_random_bytes_arch(&ptr_key, key_size) == key_size) { > + static_branch_disable(¬_filled_random_ptr_key); > + return 0; > + } > > + ret = add_random_ready_callback(&random_ready); > if (!ret) { > return 0; > } else if (ret == -EALREADY) {

