On Wed Jul 3, 2024 at 11:11 PM EEST, James Bottomley wrote: > On Wed, 2024-07-03 at 21:24 +0300, Jarkko Sakkinen wrote: > [...] > > diff --git a/include/linux/tpm.h b/include/linux/tpm.h > > index 21a67dc9efe8..2844fea4a12a 100644 > > --- a/include/linux/tpm.h > > +++ b/include/linux/tpm.h > > @@ -211,8 +211,8 @@ struct tpm_chip { > > u8 null_key_name[TPM2_NAME_SIZE]; > > u8 null_ec_key_x[EC_PT_SZ]; > > u8 null_ec_key_y[EC_PT_SZ]; > > - struct tpm2_auth *auth; > > #endif > > + struct tpm2_auth *auth; > > }; > > Since auth should only be present if CONFIG_TCG_TPM2_HMAC this is > clearly an undesirable thing to do. I think you did it because in a > later patch you want to collapse the hmac sessions to use a single > routine, but you can make that check with the preprocessor __and > function defined in kconfig.h: > > if (__and(IS_ENABLED(CONFIG_TCG_TPM2_HMAC), chip->auth)) > > Which will become 0 if the config is not enabled and chip->auth if it > is, thus eliminating the code in the former case while not causing the > compiler to complain about chip->auth not being defined even if it's > under the config parameter. I did not know about '__and()'. Thanks I'll use this! > > James BR, Jarkko