All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Borkmann <dborkman@redhat.com>
To: Sasha Levin <sasha.levin@oracle.com>
Cc: davem@davemloft.net, hannes@stressinduktion.org, tytso@mit.edu,
	linux-kernel@vger.kernel.org, eric.dumazet@gmail.com
Subject: Re: [PATCH] random32: avoid attempt to late reseed if in the middle of seeding
Date: Thu, 27 Mar 2014 00:40:38 +0100	[thread overview]
Message-ID: <53336576.1090503@redhat.com> (raw)
In-Reply-To: <53336425.6030409@oracle.com>

On 03/27/2014 12:35 AM, Sasha Levin wrote:
> On 03/26/2014 07:18 PM, Daniel Borkmann wrote:
>> On 03/26/2014 06:12 PM, Sasha Levin wrote:
>>> Commit 4af712e8df ("random32: add prandom_reseed_late() and call when
>>> nonblocking pool becomes initialized") has added a late reseed stage
>>> that happens as soon as the nonblocking pool is marked as initialized.
>>>
>>> This fails in the case that the nonblocking pool gets initialized
>>> during __prandom_reseed()'s call to get_random_bytes(). In that case
>>> we'd double back into __prandom_reseed() in an attempt to do a late
>>> reseed - deadlocking on 'lock' early on in the boot process.
>>>
>>> Instead, just avoid even waiting to do a reseed if a reseed is already
>>> occuring.
>>>
>>> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
>>
>> Thanks for catching! (If you want Dave to pick it up, please also
>> Cc netdev.)
>>
>> Why not via spin_trylock_irqsave() ? Thus, if we already hold the
>> lock, we do not bother any longer with doing the same work twice
>> and just return.
>
> Your code looks much better, I'll should really stop sending patches
> too early in the morning...
>
> It's also worth adding lib/random32.c to the MAINTAINERS file, as my
> list of recipients is solely based on what get_maintainer.pl tells
> me to do (and I'm assuming that I'm not the last person who will be
> sending patches for this).

Sounds like a good idea, afaik, historically, this got ripped out as
a lib from networking subsystem. That's why we've sent it to netdev
last time.

Cheers,

Daniel

  reply	other threads:[~2014-03-26 23:40 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-26 17:12 [PATCH] random32: avoid attempt to late reseed if in the middle of seeding Sasha Levin
2014-03-26 17:53 ` Hannes Frederic Sowa
2014-03-26 23:18 ` Daniel Borkmann
2014-03-26 23:35   ` Sasha Levin
2014-03-26 23:40     ` Daniel Borkmann [this message]
2014-03-27  2:21     ` Hannes Frederic Sowa
2014-03-27  9:04       ` Daniel Borkmann
2014-03-27  9:18         ` Hannes Frederic Sowa
2014-03-27 12:50           ` Daniel Borkmann

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=53336576.1090503@redhat.com \
    --to=dborkman@redhat.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=hannes@stressinduktion.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sasha.levin@oracle.com \
    --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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.