All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko@kernel.org>
To: Stefano Garzarella <sgarzare@redhat.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>,
	Thomas Gleixner <tglx@linutronix.de>,
	Claudio Carvalho <cclaudio@linux.ibm.com>,
	Peter Huewe <peterhuewe@gmx.de>,
	x86@kernel.org, Dov Murik <dovmurik@linux.ibm.com>,
	linux-coco@lists.linux.dev, Dionna Glaze <dionnaglaze@google.com>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	Ingo Molnar <mingo@redhat.com>, Joerg Roedel <jroedel@suse.de>,
	linux-integrity@vger.kernel.org, linux-kernel@vger.kernel.org,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>
Subject: Re: [RFC PATCH v2 3/6] tpm: add send_recv() ops in tpm_class_ops
Date: Fri, 7 Mar 2025 00:15:34 +0200	[thread overview]
Message-ID: <Z8oehuPVMXbgjAxz@kernel.org> (raw)
In-Reply-To: <jkr5z4thb55gs2jcmtcfipgg6p7z6ikhr6etd6l3nqpf723hf7@3fns3z5cjqk4>

On Wed, Mar 05, 2025 at 10:04:25AM +0100, Stefano Garzarella wrote:
> On Tue, Mar 04, 2025 at 10:21:55PM +0200, Jarkko Sakkinen wrote:
> > On Tue, Mar 04, 2025 at 06:56:02PM +0200, Jarkko Sakkinen wrote:
> > > On Mon, 2025-03-03 at 17:21 +0100, Stefano Garzarella wrote:
> > > > On Sat, Mar 01, 2025 at 03:45:10AM +0200, Jarkko Sakkinen wrote:
> > > > > On Fri, Feb 28, 2025 at 06:07:17PM +0100, Stefano Garzarella wrote:
> > > > > > +	int (*send_recv)(struct tpm_chip *chip, u8 *buf, size_t
> > > > > > buf_len,
> > > > > > +			 size_t to_send);
> > > > >
> > > > > Please describe the meaning and purpose of to_send.
> > > >
> > > > Sure, I'll add in the commit description.
> > > 
> > > It's always a command, right? So better be more concerete than
> > > "to_send", e.g. "cmd_len".
> 
> Right!
> 
> > > 
> > > I'd do instead:
> > > 
> > > if (!chip->send)
> > > 	goto out_recv;
> > > 
> > > And change recv into:
> > > 
> > > int (*recv)(struct tpm_chip *chip, u8 *buf, size_t buf_len,
> > > 	    cmd_len);
> > 
> > I think I went here over the top, and *if* we need a new callback
> > putting send_recv would be fine. Only thing I'd take from this is to
> > rename to_len as cmd_len.
> 
> Got it.
> 
> > 
> > However, I don't think there are strong enough reasons to add complexity
> > to the callback interface with the basis of this single driver. You
> > should deal with this internally inside the driver instead.
> > 
> > So do something along the lines of, e.g.:
> > 
> > 1. Create dummy send() copying the command to internal
> >   buffer.
> > 2. Create ->status() returning zero, and set req_complete_mask and
> >   req_complete_val to zero.
> > 3. Performan transaction in recv().
> > 
> > How you split send_recv() between send() and recv() is up to you. This
> > was merely showing that we don't need send_recv() desperately.
> 
> We did something similar in v1 [1], but instead of your point 2, we just set
> `chip->flags |= TPM_CHIP_FLAG_IRQ;` in the probe() after we allocated the
> chip.
> 
> Jason suggested the send_recv() ops [2], which I liked, but if you prefer to
> avoid that, I can restore what we did in v1 and replace the
> TPM_CHIP_FLAG_IRQ hack with your point 2 (or use TPM_CHIP_FLAG_IRQ if you
> think it is fine).
> 
> @Jarkko, @Jason, I don't have a strong preference about it, so your choice
> :-)

I'd say, unless you have actual identified blocker, please go with
a driver where the complexity is managed within the driver.

> 
> Thanks,
> Stefano
> 
> [1] https://lore.kernel.org/linux-integrity/20241210143423.101774-2-sgarzare@redhat.com/
> [2] https://lore.kernel.org/linux-integrity/CAGxU2F51EoqDqi6By6eBa7qT+VT006DJ9+V-PANQ6GQrwVWt_Q@mail.gmail.com/


BR, Jarkko

  parent reply	other threads:[~2025-03-06 22:15 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-28 17:07 [RFC PATCH v2 0/6] Enlightened vTPM support for SVSM on SEV-SNP Stefano Garzarella
2025-02-28 17:07 ` [RFC PATCH v2 1/6] x86/sev: add SVSM call macros for the vTPM protocol Stefano Garzarella
2025-03-10 11:08   ` Borislav Petkov
2025-03-10 12:13     ` Stefano Garzarella
2025-02-28 17:07 ` [RFC PATCH v2 2/6] x86/sev: add SVSM vTPM probe/send_command functions Stefano Garzarella
2025-03-10 11:30   ` Borislav Petkov
2025-03-10 12:46     ` Stefano Garzarella
2025-03-10 13:27       ` Tom Lendacky
2025-03-10 13:51         ` Borislav Petkov
2025-03-10 13:56           ` Tom Lendacky
2025-03-10 14:02             ` Borislav Petkov
2025-03-10 13:59           ` Stefano Garzarella
2025-03-10 14:04             ` Borislav Petkov
2025-02-28 17:07 ` [RFC PATCH v2 3/6] tpm: add send_recv() ops in tpm_class_ops Stefano Garzarella
2025-03-01  1:45   ` Jarkko Sakkinen
2025-03-03 16:21     ` Stefano Garzarella
2025-03-04 16:56       ` Jarkko Sakkinen
2025-03-04 20:21         ` Jarkko Sakkinen
2025-03-05  9:04           ` Stefano Garzarella
2025-03-05 19:02             ` Jason Gunthorpe
2025-03-06 21:52               ` Jarkko Sakkinen
2025-03-07 15:37                 ` Stefano Garzarella
2025-03-07 16:32                   ` Jarkko Sakkinen
2025-03-06 22:15             ` Jarkko Sakkinen [this message]
2025-03-07 15:37               ` Stefano Garzarella
2025-03-03 14:06   ` Tom Lendacky
2025-03-03 17:29     ` Stefano Garzarella
2025-02-28 17:07 ` [RFC PATCH v2 4/6] tpm: add interface to interact with devices based on TCG Simulator Stefano Garzarella
2025-03-01  1:48   ` Jarkko Sakkinen
2025-03-03 16:41     ` Stefano Garzarella
2025-03-04 15:23     ` Stefano Garzarella
2025-03-04 17:14       ` Jarkko Sakkinen
2025-03-03 14:28   ` Tom Lendacky
2025-03-03 17:30     ` Stefano Garzarella
2025-02-28 17:07 ` [RFC PATCH v2 5/6] tpm: add SNP SVSM vTPM driver Stefano Garzarella
2025-03-01  0:28   ` Jason Gunthorpe
2025-03-03 16:19     ` Stefano Garzarella
2025-03-03 18:24       ` Jason Gunthorpe
2025-03-01  1:51   ` Jarkko Sakkinen
2025-03-01  3:57     ` Dionna Amalie Glaze
2025-03-03 16:46     ` Stefano Garzarella
2025-03-04 17:27       ` Jarkko Sakkinen
2025-03-05  9:07         ` Stefano Garzarella
2025-02-28 17:07 ` [RFC PATCH v2 6/6] x86/sev: register tpm-svsm platform device Stefano Garzarella
2025-03-01  0:30 ` [RFC PATCH v2 0/6] Enlightened vTPM support for SVSM on SEV-SNP Jason Gunthorpe
2025-03-03 16:20   ` Stefano Garzarella

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=Z8oehuPVMXbgjAxz@kernel.org \
    --to=jarkko@kernel.org \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=bp@alien8.de \
    --cc=cclaudio@linux.ibm.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=dionnaglaze@google.com \
    --cc=dovmurik@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=jgg@ziepe.ca \
    --cc=jroedel@suse.de \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterhuewe@gmx.de \
    --cc=sgarzare@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=x86@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.