From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "James Bottomley" <James.Bottomley@HansenPartnership.com>,
"Linus Torvalds" <torvalds@linux-foundation.org>
Cc: <linux-integrity@vger.kernel.org>,
"Thorsten Leemhuis" <regressions@leemhuis.info>,
<stable@vger.kernel.org>, "Stefan Berger" <stefanb@linux.ibm.com>,
"Peter Huewe" <peterhuewe@gmx.de>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"Mimi Zohar" <zohar@linux.ibm.com>,
"David Howells" <dhowells@redhat.com>,
"Paul Moore" <paul@paul-moore.com>,
"James Morris" <jmorris@namei.org>,
"Serge E. Hallyn" <serge@hallyn.com>,
"Ard Biesheuvel" <ardb@kernel.org>,
"Mario Limonciello" <mario.limonciello@amd.com>,
<linux-kernel@vger.kernel.org>, <keyrings@vger.kernel.org>,
<linux-security-module@vger.kernel.org>
Subject: Re: [PATCH v2 2/3] tpm: Address !chip->auth in tpm_buf_append_name()
Date: Thu, 04 Jul 2024 21:05:33 +0300 [thread overview]
Message-ID: <D2GYCMH24J2W.3MLLRA42T52MY@kernel.org> (raw)
In-Reply-To: <91ccd10c3098782d540a3e9f5c70c5034f867928.camel@HansenPartnership.com>
On Thu Jul 4, 2024 at 8:21 PM EEST, James Bottomley wrote:
> On Thu, 2024-07-04 at 10:07 -0700, Linus Torvalds wrote:
> > On Wed, 3 Jul 2024 at 13:11, James Bottomley
> > <James.Bottomley@hansenpartnership.com> wrote:
> > >
> > > if (__and(IS_ENABLED(CONFIG_TCG_TPM2_HMAC), chip->auth))
> >
> > Augh. Please don't do this.
> >
> > That "__and()" thing may work, but it's entirely accidental that it
> > does.
> >
> > It's designed for config options _only_, and the fact that it then
> > happens to work for "first argument is config option, second argument
> > is C conditional".
> >
> > The comment says that it's implementing "&&" using preprocessor
> > expansion only, but it's a *really* limited form of it. The arguments
> > are *not* arbitrary.
> >
> > So no. Don't do this.
> >
> > Just create a helper inline like
> >
> > static inline struct tpm2_auth *chip_auth(struct tpm_chip *chip)
> > {
> > #ifdef CONFIG_TCG_TPM2_HMAC
> > return chip->auth;
> > #else
> > return NULL;
> > #endif
> > }
> >
> > and if we really want to have some kind of automatic way of doing
> > this, we will *NOT* be using __and(), we'd do something like
> >
> > /* Return zero or 'value' depending on whether OPTION is
> > enabled or not */
> > #define IF_ENABLED(option, value) __and(IS_ENABLED(option),
> > value)
> >
> > that actually would be documented and meaningful.
> >
> > Not this internal random __and() implementation that is purely a
> > kconfig.h helper macro and SHOULD NOT be used anywhere else.
>
> I actually like the latter version, but instinct tells me that if this
> is the first time the kernel has ever needed something like this then
> perhaps we should go with the former because that's how everyone must
> have handled it in the past.
I'll go with the former given it is somewhat idiomatic and familiar
pattern.
> James
BR, Jarkko
next prev parent reply other threads:[~2024-07-04 18:05 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-03 18:24 [PATCH v2 0/3] Address !chip->auth Jarkko Sakkinen
2024-07-03 18:24 ` [PATCH v2 1/3] tpm: Address !chip->auth in tpm2_*_auth_session() Jarkko Sakkinen
2024-07-03 18:24 ` [PATCH v2 2/3] tpm: Address !chip->auth in tpm_buf_append_name() Jarkko Sakkinen
2024-07-03 20:11 ` James Bottomley
2024-07-04 6:53 ` Jarkko Sakkinen
2024-07-04 17:07 ` Linus Torvalds
2024-07-04 17:21 ` James Bottomley
2024-07-04 18:05 ` Jarkko Sakkinen [this message]
2024-07-03 18:24 ` [PATCH v2 3/3] tpm: Address !chip->auth in tpm_buf_append_hmac_session*() Jarkko Sakkinen
2024-07-04 1:56 ` Stefan Berger
2024-07-04 6:41 ` Jarkko Sakkinen
2024-07-05 14:05 ` Stefan Berger
2024-07-05 14:35 ` Jarkko Sakkinen
2024-07-05 15:04 ` Jarkko Sakkinen
2024-07-04 6:52 ` Jarkko Sakkinen
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=D2GYCMH24J2W.3MLLRA42T52MY@kernel.org \
--to=jarkko@kernel.org \
--cc=James.Bottomley@HansenPartnership.com \
--cc=ardb@kernel.org \
--cc=dhowells@redhat.com \
--cc=jgg@ziepe.ca \
--cc=jmorris@namei.org \
--cc=keyrings@vger.kernel.org \
--cc=linux-integrity@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=paul@paul-moore.com \
--cc=peterhuewe@gmx.de \
--cc=regressions@leemhuis.info \
--cc=serge@hallyn.com \
--cc=stable@vger.kernel.org \
--cc=stefanb@linux.ibm.com \
--cc=torvalds@linux-foundation.org \
--cc=zohar@linux.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.