On Wed, Jun 11, 2025 at 06:36:02PM +0100, Yeoreum Yun wrote: > Hi Jarkko, > > > On Tue, Jun 10, 2025 at 04:22:04PM +0100, Yeoreum Yun wrote: > > > > OK, if ffa_init() is leveled up in the initcall hierarchy, shouldn't > > > > that be enough as long as ko's can be found from initramfs? > > > > > > As you mentioned, this is handled in Patch #1. > > > However, although ffa_init() is called first, > > > unless tpm_crb_ffa_init() is also invoked, > > > crb_acpi_driver_init() will fail with -EPROBE_DEFER. > > > > > > Please note that IMA is always built-in and cannot be built as a module. > > > > Sure but if one needs IMA, then tpm_crb_ffa can be compiled as built-in > > with zero code changes. > > All of my describtion based on all things are built as "built-in". > in case of ffa_init() changes the init level to root_initcall, > so, the ffa_device will be produced first before the trial of TPM probe. > > Note that tpm_crb_ffa_init() which is the "ffa_driver" is called in > device_initcall level. I mean > > ffa_init() -> arm_ffa -> root_initcall > tpm_crb_ffa_init() -> device_initcall > crb_acpi_driver_init() -> device_initcall > > therefore, "crb_acpi_driver_init()" can be call first before > tpm_crb_ffa_init() since they're deployed in device_initcall. > If this happen, "crb_acpi_driver_init()" failed with -EPROBE_DEFER. > > That's why this patch is required to probe "tpm_crb_ffa" when > crb_acpi_driver_init() called to complete the TPM device probe before > IMA subsystem initailization.
Yep, and you sort it out by not compiling it as a module. + ret = ffa_register(&tpm_crb_ffa_driver); + BUG_ON(!ret && !tpm_crb_ffa); These lines struck me in your patch. The commit message has nothing about ffa_register(). Also, please remove BUG_ON(). That said, I don't think 2/2 is needed. > > Thanks. > > -- > Sincerely, > Yeoreum Yun BR, Jarkko
