All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: Horia Geanta <horia.geanta@nxp.com>
Cc: "linux-crypto@vger.kernel.org" <linux-crypto@vger.kernel.org>,
	Chris Healy <cphealy@gmail.com>,
	Lucas Stach <l.stach@pengutronix.de>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	Iuliana Prodan <iuliana.prodan@nxp.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	dl-linux-imx <linux-imx@nxp.com>
Subject: Re: [PATCH v6 2/7] crypto: caam - drop global context pointer and init_done
Date: Mon, 27 Jan 2020 05:44:32 -0800	[thread overview]
Message-ID: <CAHQ1cqHmn2JwNVjOGdbjuSnf6abfOUVe4xoCE=qvV8++jSFdZg@mail.gmail.com> (raw)
In-Reply-To: <VI1PR0402MB3485A38A9A71500E632191AD98350@VI1PR0402MB3485.eurprd04.prod.outlook.com>

On Mon, Jan 13, 2020 at 1:41 AM Horia Geanta <horia.geanta@nxp.com> wrote:
>
> On 1/8/2020 5:42 PM, Andrey Smirnov wrote:
> > @@ -342,18 +324,16 @@ int caam_rng_init(struct device *ctrldev)
> >       if (!rng_inst)
> >               return 0;
> >
> > -     rng_ctx = kmalloc(sizeof(*rng_ctx), GFP_DMA | GFP_KERNEL);
> > -     if (!rng_ctx)
> > +     ctx = devm_kzalloc(ctrldev, sizeof(*ctx), GFP_DMA | GFP_KERNEL);
> > +     if (!ctx)
> >               return -ENOMEM;
> >
> > -     dev_info(ctrldev, "registering rng-caam\n");
> > +     ctx->rng.name    = "rng-caam";
> > +     ctx->rng.init    = caam_init;
> > +     ctx->rng.cleanup = caam_cleanup;
> > +     ctx->rng.read    = caam_read;
> >
> > -     err = hwrng_register(&caam_rng);
> > -     if (!err) {
> > -             init_done = true;
> > -             return err;
> > -     }
> > +     dev_info(ctrldev, "registering rng-caam\n");
> >
> > -     kfree(rng_ctx);
> > -     return err;
> > +     return devm_hwrng_register(ctrldev, &ctx->rng);
> This means hwrng_unregister() is called only when ctrldev is removed.
>
> OTOH caam_rng_init() could be called multiple times, e.g. if there's only one
> jrdev left in the system and it's removed then added back.
> This will lead to caam_rng_init() -> hwrng_register() called twice
> with the same "rng-caam" name, without a hwrng_unregister() called in-between.
>

True, but the logic you describe is broken in reality due to circular
reference from HWRNG, which we never fixed. I'll fix both in v7.

Thanks,
Andrey Smirnov

  reply	other threads:[~2020-01-27 13:44 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-08 15:40 [PATCH v6 0/7] enable CAAM's HWRNG as default Andrey Smirnov
2020-01-08 15:40 ` [PATCH v6 1/7] crypto: caam - use struct hwrng's .init for initialization Andrey Smirnov
2020-01-08 15:40 ` [PATCH v6 2/7] crypto: caam - drop global context pointer and init_done Andrey Smirnov
2020-01-13  9:41   ` Horia Geanta
2020-01-27 13:44     ` Andrey Smirnov [this message]
2020-01-08 15:40 ` [PATCH v6 3/7] crypto: caam - simplify RNG implementation Andrey Smirnov
2020-01-08 15:40 ` [PATCH v6 4/7] crypto: caam - check if RNG job failed Andrey Smirnov
2020-01-08 15:40 ` [PATCH v6 5/7] crypto: caam - invalidate entropy register during RNG initialization Andrey Smirnov
2020-01-08 15:40 ` [PATCH v6 6/7] crypto: caam - enable prediction resistance in HRWNG Andrey Smirnov
2020-01-20 16:38   ` Horia Geanta
2020-01-21  6:20     ` Horia Geanta
2020-01-21 16:38   ` Horia Geanta
2020-01-22 13:37     ` Horia Geanta
2020-01-27 13:45       ` Andrey Smirnov
2020-01-08 15:40 ` [PATCH v6 7/7] crypto: caam - limit single JD RNG output to maximum of 16 bytes Andrey Smirnov
2020-01-13 14:10   ` Horia Geanta
2020-01-27 13:42     ` Andrey Smirnov
2020-01-22 15:11 ` [PATCH v6 0/7] enable CAAM's HWRNG as default Horia Geanta

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='CAHQ1cqHmn2JwNVjOGdbjuSnf6abfOUVe4xoCE=qvV8++jSFdZg@mail.gmail.com' \
    --to=andrew.smirnov@gmail.com \
    --cc=cphealy@gmail.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=horia.geanta@nxp.com \
    --cc=iuliana.prodan@nxp.com \
    --cc=l.stach@pengutronix.de \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    /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.