mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Tom Lendacky <thomas.lendacky@amd.com>
To: Mario Limonciello <mario.limonciello@amd.com>,
	John Allen <john.allen@amd.com>,
	Herbert Xu <herbert@gondor.apana.org.au>,
	"David S . Miller" <davem@davemloft.net>
Cc: open list <linux-kernel@vger.kernel.org>,
	"open list:AMD CRYPTOGRAPHIC COPROCESSOR (CCP) DRIVER" 
	<linux-crypto@vger.kernel.org>,
	Kerneis Gabriel <Gabriel.Kerneis@ssi.gouv.fr>,
	Richard Hughes <hughsient@gmail.com>
Subject: Re: [PATCH v2 3/4] crypto: ccp: Allow PSP driver to load without SEV/TEE support
Date: Thu, 31 Mar 2022 15:10:29 -0500	[thread overview]
Message-ID: <d1586b34-1ed3-99fe-ce03-90aa54e88eae@amd.com> (raw)
In-Reply-To: <20220329164117.1449-4-mario.limonciello@amd.com>

On 3/29/22 11:41, Mario Limonciello wrote:
> Previously the PSP probe routine would fail if both SEV and TEE were
> missing.  This is possibly the case for some client parts.
> 
> As capabilities can now be accessed from userspace, it may still be
> useful to have the PSP driver finish loading so that those capabilities
> can be read.
> 
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> v1->v2:
>   * Whitespace fixes
> ---
>   drivers/crypto/ccp/psp-dev.c | 2 +-
>   drivers/crypto/ccp/sp-dev.c  | 6 ++++++
>   2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c
> index 8cd404121cd5..3f47b2d81e3c 100644
> --- a/drivers/crypto/ccp/psp-dev.c
> +++ b/drivers/crypto/ccp/psp-dev.c
> @@ -158,7 +158,7 @@ int psp_dev_init(struct sp_device *sp)
>   
>   	ret = psp_check_support(psp);
>   	if (ret)
> -		goto e_disable;
> +		return 0;
>   
>   	/* Disable and clear interrupts until ready */
>   	iowrite32(0, psp->io_regs + psp->vdata->inten_reg);
> diff --git a/drivers/crypto/ccp/sp-dev.c b/drivers/crypto/ccp/sp-dev.c
> index 7eb3e4668286..3486ab2a8982 100644
> --- a/drivers/crypto/ccp/sp-dev.c
> +++ b/drivers/crypto/ccp/sp-dev.c
> @@ -132,6 +132,9 @@ int sp_request_psp_irq(struct sp_device *sp, irq_handler_t handler,
>   
>   void sp_free_ccp_irq(struct sp_device *sp, void *data)
>   {
> +	if (!sp->irq_registered)
> +		return;
> +

I just noticed that irq_registered is only set when a single interrupt 
ends up being used. When both the CCP and PSP get their own interrupts 
(the common case), this will result in free_irq() not being called.

So this needs to be fixed. I would think just allowing the IRQs to be 
requested and freed whenever the driver is loaded (regardless of whether 
they would be used) might be the best way forward.

Thanks,
Tom

>   	if ((sp->psp_irq == sp->ccp_irq) && sp->dev_vdata->psp_vdata) {
>   		/* Using common routine to manage all interrupts */
>   		if (!sp->psp_irq_handler) {
> @@ -151,6 +154,9 @@ void sp_free_ccp_irq(struct sp_device *sp, void *data)
>   
>   void sp_free_psp_irq(struct sp_device *sp, void *data)
>   {
> +	if (!sp->irq_registered)
> +		return;
> +
>   	if ((sp->psp_irq == sp->ccp_irq) && sp->dev_vdata->ccp_vdata) {
>   		/* Using common routine to manage all interrupts */
>   		if (!sp->ccp_irq_handler) {

  reply	other threads:[~2022-03-31 20:10 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-29 16:41 [PATCH v2 0/4] Export PSP security attributes Mario Limonciello
2022-03-29 16:41 ` [PATCH v2 1/4] crypto: ccp: cache capability into psp device Mario Limonciello
2022-03-31 20:02   ` Tom Lendacky
2022-03-29 16:41 ` [PATCH v2 2/4] crypto: ccp: Export PSP security bits to userspace Mario Limonciello
2022-03-31 20:03   ` Tom Lendacky
2022-03-29 16:41 ` [PATCH v2 3/4] crypto: ccp: Allow PSP driver to load without SEV/TEE support Mario Limonciello
2022-03-31 20:10   ` Tom Lendacky [this message]
2022-03-29 16:41 ` [PATCH v2 4/4] crypto: ccp: When TSME and SME both detected notify user Mario Limonciello
2022-03-31 20:12   ` Tom Lendacky

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=d1586b34-1ed3-99fe-ce03-90aa54e88eae@amd.com \
    --to=thomas.lendacky@amd.com \
    --cc=Gabriel.Kerneis@ssi.gouv.fr \
    --cc=davem@davemloft.net \
    --cc=herbert@gondor.apana.org.au \
    --cc=hughsient@gmail.com \
    --cc=john.allen@amd.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mario.limonciello@amd.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®