Unless tpm2_sessions_init() is called, then chip->auth ends up being a null pointer, which is ignored by authenticated sessions code. These patches aim to fully address the bug, and hopefully still make into 6.10-rc7. Tested on x86-64 with: - TCG_TPM2_HMAC disabled. - TCG_TPM2_HMAC enabled. - TCG_TPM2_HMAC enabled, and "/* rc = tpm2_sessions_init(chip); */". For drivers that do not initialize with tpm2_chip_bootstrap(), the lack of auth sessions is reported once per power cycle by: "tpm tpm0: auth session is not active" This is expected output for the following drivers: * tpm_ftpm_tee.c * tpm_i2c_nuvoton.c * tpm_ibmvtpm.c * tpm_tis_i2c_cr50.c * tpm_vtpm_proxy.c They need to later on enable auth sessions, if they eager to. This patch set only fixes any collateral damage of not doing so. v4: * Address: https://lore.kernel.org/linux-integrity/CAHk-=wiM=Cyw-07EkbAH66pE50VzJiT3bVHv9CS=kYR6zz5mTQ@xxxxxxxxxxxxxx/ * Git: https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/log/?h=auth-null-4 v3: * Address: https://lore.kernel.org/linux-integrity/922603265d61011dbb23f18a04525ae973b83ffd.camel@xxxxxxxxxxxxxxxxxxxxx/ * Git: https://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/log/?h=auth-null-3 * Did a full QA run given the changes in config flag handling. v2: * Rebase to commit 8a9c6c40432e ("Merge tag 'io_uring-6.10-20240703' of git://git.kernel.dk/linux"). * Couple of cosmetic fixes. Jarkko Sakkinen (3): tpm: Address !chip->auth in tpm2_*_auth_session() tpm: Address !chip->auth in tpm_buf_append_name() tpm: Address !chip->auth in tpm_buf_append_hmac_session*() drivers/char/tpm/Makefile | 2 +- drivers/char/tpm/tpm2-sessions.c | 419 ++++++++++++++++++------------- include/linux/tpm.h | 81 +++--- 3 files changed, 269 insertions(+), 233 deletions(-) -- 2.45.2