[GIT PULL] tpmdd: changes for v6.4-rc1

From: Jarkko Sakkinen
Date: Mon Apr 24 2023 - 10:41:41 EST


The following changes since commit 457391b0380335d5e9a5babdec90ac53928b23b4:

Linux 6.3 (2023-04-23 12:02:52 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd.git/ tags/tpmdd-v6.4-rc1

for you to fetch changes up to bd8621ca1510e6e802df9855bdc35a04a3cfa932:

tpm: Add !tpm_amd_is_rng_defective() to the hwrng_unregister() call site (2023-04-24 16:15:53 +0300)

----------------------------------------------------------------
Two major features are included into this pull request. The links for
the landed patch sets are below.

The .machine keyring, used for Machine Owner Keys (MOK), acquired the
ability to store only CA enforced keys, and put rest to the .platform
keyring, thus separating the code signing keys from the keys that are
used to sign certificates. This essentially unlocks the use of the
.machine keyring as a trust anchor for IMA. It is an opt-in feature,
meaning that the additional contraints won't brick anyone who does not
care about them.

The 2nd feature is the enablement of interrupt based transactions with
discrete TPM chips (tpm_tis). There was code for this existing but it
never really worked so I consider this a new feature rather than a bug
fix. Before the driver just falled back to the polling mode.

Link: https://lore.kernel.org/linux-integrity/a93b6222-edda-d43c-f010-a59701f2aeef@xxxxxx/
Link: https://lore.kernel.org/linux-integrity/20230302164652.83571-1-eric.snowberg@xxxxxxxxxx/

----------------------------------------------------------------
Eric Snowberg (6):
KEYS: Create static version of public_key_verify_signature
KEYS: Add missing function documentation
KEYS: X.509: Parse Basic Constraints for CA
KEYS: X.509: Parse Key Usage
KEYS: CA link restriction
integrity: machine keyring CA configuration

Haris Okanovic (1):
tpm_tis: fix stall after iowrite*()s

Jarkko Sakkinen (1):
tpm: Add !tpm_amd_is_rng_defective() to the hwrng_unregister() call site

Krzysztof Kozlowski (2):
tpm: st33zp24: Mark ACPI and OF related data as maybe unused
tpm: tpm_tis_spi: Mark ACPI and OF related data as maybe unused

Lino Sanfilippo (14):
tpm, tpm_tis: Avoid cache incoherency in test for interrupts
tpm, tpm_tis: Claim locality before writing TPM_INT_ENABLE register
tpm, tpm_tis: Disable interrupts if tpm_tis_probe_irq() failed
tpm, tpm_tis: Do not skip reset of original interrupt vector
tpm, tpm_tis: Claim locality before writing interrupt registers
tpm, tpm_tis: Only handle supported interrupts
tpm, tpm_tis: Move interrupt mask checks into own function
tpm, tpm_tis: do not check for the active locality in interrupt handler
tpm, tpm: Implement usage counter for locality
tpm, tpm_tis: Request threaded interrupt handler
tpm, tpm_tis: Claim locality in interrupt handler
tpm, tpm_tis: Claim locality when interrupts are reenabled on resume
tpm, tpm_tis: startup chip before testing for interrupts
tpm, tpm_tis: Enable interrupt test

Mark Hasemeyer (1):
tpm: cr50: i2c: use jiffies to wait for tpm ready irq

Uwe Kleine-König (3):
tpm/tpm_ftpm_tee: Convert to platform remove callback returning void
tpm/tpm_tis: Convert to platform remove callback returning void
tpm/tpm_tis_synquacer: Convert to platform remove callback returning void

Yu Zhe (1):
tpm: remove unnecessary (void*) conversions

certs/system_keyring.c | 14 +-
crypto/asymmetric_keys/restrict.c | 40 ++++
crypto/asymmetric_keys/x509_cert_parser.c | 50 +++++
drivers/char/tpm/eventlog/common.c | 6 +-
drivers/char/tpm/st33zp24/i2c.c | 4 +-
drivers/char/tpm/st33zp24/spi.c | 4 +-
drivers/char/tpm/tpm-chip.c | 41 ++--
drivers/char/tpm/tpm.h | 1 +
drivers/char/tpm/tpm_ftpm_tee.c | 6 +-
drivers/char/tpm/tpm_tis.c | 51 ++++-
drivers/char/tpm/tpm_tis_core.c | 299 ++++++++++++++++++------------
drivers/char/tpm/tpm_tis_core.h | 5 +-
drivers/char/tpm/tpm_tis_i2c_cr50.c | 3 +-
drivers/char/tpm/tpm_tis_spi_main.c | 4 +-
drivers/char/tpm/tpm_tis_synquacer.c | 6 +-
include/crypto/public_key.h | 28 +++
security/integrity/Kconfig | 23 ++-
security/integrity/digsig.c | 8 +-
18 files changed, 431 insertions(+), 162 deletions(-)