[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPDyKFp5z=72eUudLXKD84eSVgPp7gGGJCtUKZeczMb3J68oew@mail.gmail.com>
Date: Fri, 25 Oct 2024 00:47:46 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: Seshu Madhavi Puppala <quic_spuppala@...cinc.com>, Eric Biggers <ebiggers@...nel.org>
Cc: Adrian Hunter <adrian.hunter@...el.com>, linux-mmc@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org,
quic_rampraka@...cinc.com, quic_nitirawa@...cinc.com,
quic_sachgupt@...cinc.com, quic_bhaskarv@...cinc.com,
quic_neersoni@...cinc.com, quic_gaurkash@...cinc.com
Subject: Re: [PATCH RFC v3 1/2] mmc: core: Add vendor hook to control
reprogram keys to Crypto Engine
On Wed, 23 Oct 2024 at 23:28, Eric Biggers <ebiggers@...nel.org> wrote:
>
> On Sun, Oct 06, 2024 at 07:25:29PM +0530, Seshu Madhavi Puppala wrote:
> > Add mmc_host_ops hook avoid_reprogram_allkeys to control
> > reprogramming keys to Inline Crypto Engine by vendor as some
> > vendors might not require this feature.
> >
> > Signed-off-by: Seshu Madhavi Puppala <quic_spuppala@...cinc.com>
> > Co-developed-by: Ram Prakash Gupta <quic_rampraka@...cinc.com>
> > Signed-off-by: Ram Prakash Gupta <quic_rampraka@...cinc.com>
> > ---
> > drivers/mmc/core/crypto.c | 8 +++++---
> > drivers/mmc/host/sdhci.c | 6 ++++++
> > include/linux/mmc/host.h | 7 +++++++
> > 3 files changed, 18 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/mmc/core/crypto.c b/drivers/mmc/core/crypto.c
> > index fec4fbf16a5b..4168f7d135ff 100644
> > --- a/drivers/mmc/core/crypto.c
> > +++ b/drivers/mmc/core/crypto.c
> > @@ -14,9 +14,11 @@
> >
> > void mmc_crypto_set_initial_state(struct mmc_host *host)
> > {
> > - /* Reset might clear all keys, so reprogram all the keys. */
> > - if (host->caps2 & MMC_CAP2_CRYPTO)
> > - blk_crypto_reprogram_all_keys(&host->crypto_profile);
> > + if (host->ops->avoid_reprogram_allkeys && !host->ops->avoid_reprogram_allkeys()) {
> > + /* Reset might clear all keys, so reprogram all the keys. */
> > + if (host->caps2 & MMC_CAP2_CRYPTO)
> > + blk_crypto_reprogram_all_keys(&host->crypto_profile);
> > + }
>
> This should be a simple flag, not an indirect function call which is
> inefficient.
>
> It could be a bit in mmc_host_ops, though based on the existing code maybe a new
> bit in MMC_CAP2_* would be more appropriate.
Thanks for commenting Eric. From a principle point of view, it sounds
like this makes sense to you too.
When it comes to the implementation details, I agree with the above.
Perhaps MMC_CAP2_CRYPTO_NO_PROG, or something along those lines would
be better. Unless the callback is intended to dynamically allow the
decision to be changed, but it doesn't look like that in subsequent
patches.
Kind regards
Uffe
Powered by blists - more mailing lists