Re: [PATCH v3] ARM: imx: Fix suspend/resume crash with Clang CFI
Sami Tolvanen <[email protected]> Thu, 23 Jul 2026 12:21:52 -0700
| Newsgroups | dev.linux.lists.llvm,dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <CABCJKud9B8vB-J8f0HLHw6EgEKVWzy+Q1PrNxpO_6yCGtEyi8A@mail.gmail.com> |
On Thu, Jul 23, 2026 at 6:30 AM Yo'av Moshe <[email protected]> wrote: > > On 2026-07-22 8:03 PM, Sami Tolvanen wrote: > > As long as the C prototype for the assembly function matches the > > function pointer type, the hashes should also match. Can you dump the > > hash prefix from the OCRAM and compare it to the disassembly of the > > call site? > Here is what I saw when checking the disassembly in vmlinux: > > 1. Call site expected hash in pm-imx6.c: 0xA488EBFC > 2. SYM_TYPED_FUNC_START hash prefix in suspend-imx6.S: 0xd4d4d4d4 What's the value for the __kcfi_typeid_imx6_suspend symbol in vmlinux.o? I would expect the hash value to look a bit more random. > It looks like because suspend-imx6.S is an assembly file, Clang emits > the default assembly type ID (0xd4d4d4d4) for it, which doesn't match > the C call site expectation (0xA488EBFC). Clang doesn't actually emit type hashes for assembly functions. SYM_TYPED_FUNC_START just adds a reference to the __kcfi_typeid_<functionname> symbol that contains a hash calculated for the C prototype. Sami