On Mon, 2026-05-25 at 08:54 +0100, Yeoreum Yun wrote: > To generate the boot_aggregate log in the IMA subsystem with TPM PCR values, > the TPM driver must be built as built-in and > must be probed before the IMA subsystem is initialized. > > However, when the TPM device operates over the FF-A protocol using > the CRB interface, probing fails and returns -EPROBE_DEFER if > the tpm_crb_ffa device — an FF-A device that provides the communication > interface to the tpm_crb driver — has not yet been probed. > > To ensure the TPM device operating over the FF-A protocol with > the CRB interface is probed before IMA initialization, > the following conditions must be met: > > 1. The corresponding ffa_device must be registered, > which is done via ffa_init(). > > 2. The tpm_crb_driver must successfully probe this device via > tpm_crb_ffa_init(). > > 3. The tpm_crb driver using CRB over FF-A can then > be probed successfully. (See crb_acpi_add() and > tpm_crb_ffa_init() for reference.) > > Unfortunately, ffa_init(), tpm_crb_ffa_init(), and crb_acpi_driver_init() are > all registered with device_initcall, which means crb_acpi_driver_init() may > be invoked before ffa_init() and tpm_crb_ffa_init() are completed. > > When this occurs, probing the TPM device is deferred. > However, the deferred probe can happen after the IMA subsystem > has already been initialized, since IMA initialization is performed > during late_initcall, and deferred_probe_initcall() is performed > at the same level. > > And the similar situation is reported on TPM devices attached on SPI > bus[0]. > > To resolve this, introduce IMA_INIT_LATE_SYNC option to initialise > IMA at late_inicall_sync so that IMA is initialized with the TPM > device probed deffered.
-> deferred > > When this option is enabled, modules that access files in the > initramfs through usermode helper calls such as request_module() > during initcall must not be built-in. Otherwise, IMA may miss > measuring those files since they're the file accesses before the Reword or remove phrase starting with "since". > initialisation of IMA [1]. > > Link: https://lore.kernel.org/all/[email protected]/ [0] > Link: > https://lore.kernel.org/all/[email protected]/ > [1] > Suggested-by: Mimi Zohar <[email protected]> > Signed-off-by: Yeoreum Yun <[email protected]> This version of the patch drops differentiating the boot_aggregate record based on initcall as was posted in "[RFC PATCH v3 1/4] lsm: Allow LSMs to register for late_initcall_sync init". Being able to differentiate the initcalls is need by the remote attestation services. Mimi

