Re: [PATCH] ARM: OMAP2+: Make OMAP4 finish_suspend callback CFI-safe
Andreas Kemnade <[email protected]>
| Newsgroups | org.kernel.vger.linux-omap,dev.linux.lists.llvm,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 12 May 2026 22:57:57 +0900 Nathan Chancellor <[email protected]> wrote: > On Tue, May 12, 2026 at 10:02:07AM +0200, Andreas Kemnade wrote: > > On Tue, 12 May 2026 16:34:42 +0900 > > Nathan Chancellor <[email protected]> wrote: > > > > > On Tue, May 12, 2026 at 12:23:41AM -0400, Mithil Bavishi wrote: > > > > With CONFIG_CFI enabled, OMAP4 can trap in omap4_enter_lowpower() > > > > because omap_pm_ops.finish_suspend points directly to the assembly > > > > routine omap4_finish_suspend, which lacks the expected KCFI type > > > > metadata. > > > > > > It sounds like omap4_finish_suspend() should be defined with > > > SYM_TYPED_FUNC_START then? Is that the case for all of the other > > > functions that are added to omap_pm_ops? > > > > > omap_cpu_resume: the address is written to some cpu register and > > on that way casted to u32. So therefore does not trigger CFI. > > Same for secondary_startup which is also assembler code. > > scu_prepare is C. > > > > DO you have a pointer to any documentation: > > :~/linux$ grep -R SYM_TYPED_FUNC_START Documentation/ > > I don't think we have any formal documentation for SYM_TYPED_FUNC_START > (it should probably be documented via kernel-doc?) but you can read the > commit message of the change that added it for more information: > > e84e008e7b02 ("cfi: Add type helper macros") > Ok, I found what is the missing piece of the puzzle in my head: " In order to make this easier, the compiler emits a __kcfi_typeid_<function> symbol for each address-taken function declaration in C, which contains the expected type identifier that we can refer to in assembly code. " So time to look into my backyard if anything more is there. Regards, Andreas