All of lore.kernel.org
 help / color / mirror / Atom feed
From: PrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
To: Harald Freudenberger <freude@linux.vnet.ibm.com>
Cc: linux-crypto@vger.kernel.org,
	Herbert Xu <herbert@gondor.apana.org.au>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg KH <gregkh@linuxfoundation.org>,
	schwidefsky@de.ibm.com
Subject: Re: [PATCH 2/3] crypto: hwrng remember rng chosen by user
Date: Tue, 4 Jul 2017 18:48:36 +0530	[thread overview]
Message-ID: <CANc+2y6PAsrxgJFfZfe_E1tx99nbNNgpH_qim-9Rohfwn1z+QA@mail.gmail.com> (raw)
In-Reply-To: <1499076204-18547-3-git-send-email-freude@linux.vnet.ibm.com>

Hi Harald,

On 3 July 2017 at 15:33, Harald Freudenberger <freude@linux.vnet.ibm.com> wrote:
> When a user chooses a rng source via sysfs
> attribute this rng should be sticky, even
> when other sources with better quality to
> register. This patch introduces a simple way
> to remember the user's choise.
>
> Signed-off-by: Harald Freudenberger <freude@linux.vnet.ibm.com>
> ---
>  drivers/char/hw_random/core.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
> index e9dda16..ffd4e36 100644
> --- a/drivers/char/hw_random/core.c
> +++ b/drivers/char/hw_random/core.c
> @@ -28,6 +28,8 @@
>  #define RNG_MODULE_NAME                "hw_random"
>
>  static struct hwrng *current_rng;
> +/* the current rng has been explicitly chosen by user via sysfs */
> +static int cur_rng_set_by_user;
>  static struct task_struct *hwrng_fill;
>  /* list of registered rngs, sorted decending by quality */
>  static LIST_HEAD(rng_list);
> @@ -304,6 +306,7 @@ static ssize_t hwrng_attr_current_store(struct device *dev,
>         list_for_each_entry(rng, &rng_list, list) {
>                 if (sysfs_streq(rng->name, buf)) {
>                         err = 0;
> +                       cur_rng_set_by_user = 1;
>                         if (rng != current_rng)
>                                 err = set_current_rng(rng);
>                         break;
> @@ -444,10 +447,12 @@ int hwrng_register(struct hwrng *rng)
>
>         old_rng = current_rng;
>         err = 0;
> -       if (!old_rng || (rng->quality > old_rng->quality)) {
> +       if (!old_rng ||
> +           (!cur_rng_set_by_user && rng->quality > old_rng->quality)) {
>                 /*
>                  * Set new rng as current as the new rng source
> -                * provides better entropy quality.
> +                * provides better entropy quality and was not
> +                * chosen by userspace.
>                  */
>                 err = set_current_rng(rng);
>                 if (err)
> @@ -479,6 +484,7 @@ void hwrng_unregister(struct hwrng *rng)
>         list_del(&rng->list);
>         if (current_rng == rng) {
>                 drop_current_rng();
> +               cur_rng_set_by_user = 0;
>                 /* rng_list is sorted by quality, use the best (=first) one */
>                 if (!list_empty(&rng_list)) {
>                         struct hwrng *new_rng;
> --
> 2.7.4
>

Looks good to me. Reviewed-by: PrasannaKumar Muralidharan
<prasannatsmkumar@gmail.com>.

Regards,
PrasannaKumar

  reply	other threads:[~2017-07-04 13:18 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-03 10:03 [PATCH 0/3] crypto hwrng consider quality value, remember user choice Harald Freudenberger
2017-07-03 10:03 ` [PATCH 1/3] crypto: hwrng use rng source with best quality Harald Freudenberger
2017-07-04 13:17   ` PrasannaKumar Muralidharan
2017-07-03 10:03 ` [PATCH 2/3] crypto: hwrng remember rng chosen by user Harald Freudenberger
2017-07-04 13:18   ` PrasannaKumar Muralidharan [this message]
2017-07-03 10:03 ` [PATCH 3/3] crypto: hwrng add sysfs attribute to show user selected rng Harald Freudenberger
2017-07-04 13:15   ` PrasannaKumar Muralidharan
2017-07-05 12:09     ` Harald Freudenberger
2017-07-06  4:51       ` PrasannaKumar Muralidharan
2017-07-07 10:22         ` Harald Freudenberger
2017-07-10  6:19           ` PrasannaKumar Muralidharan

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=CANc+2y6PAsrxgJFfZfe_E1tx99nbNNgpH_qim-9Rohfwn1z+QA@mail.gmail.com \
    --to=prasannatsmkumar@gmail.com \
    --cc=arnd@arndb.de \
    --cc=freude@linux.vnet.ibm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=herbert@gondor.apana.org.au \
    --cc=linux-crypto@vger.kernel.org \
    --cc=schwidefsky@de.ibm.com \
    /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.