On Thu, Jul 23 2026 at 13:21, Paul Moore wrote:
> On Tue, Jul 21, 2026 at 3:59 AM Thomas Gleixner <[email protected]> wrote:
>> On Tue, Jul 21 2026 at 12:01, Jinjie Ruan wrote:
>> > commit 6f25517010dd ("entry: Rework syscall_audit_enter()") relies on
>> > dead code elimination to remove the call to syscall_enter_audit() when
>> > CONFIG_AUDITSYSCALL is disabled. However, with s390 GCC 13.4.0 +
>> > CONFIG_KASAN, audit_context() is not inlined despite being marked
>> > inline, causing an undefined reference to syscall_enter_audit().
>> >
>> > Force audit_context() to be __always_inline to ensure the conditional
>> > can be constant-folded and dead code elimination works correctly.
>> >
>> > Signed-off-by: Jinjie Ruan <[email protected]>
>> > Suggested-by: Thomas Gleixner <[email protected]>
>> > Reported-by: kernel test robot <[email protected]>
>> > Closes:
>> > https://lore.kernel.org/oe-kbuild-all/[email protected]/
>>
>> Obsolete. Is already in:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?h=core/entry&id=6f25517010ddd3f8080d7e06b9b1cb1b64b73772
>
> It would have been nice to see that patch CC'd to the audit mailing
> list for obvious reasons.
>
> Since I'm just looking at that tip tree patch now (perhaps there are
> other preceding patches that affect this?), does it still compile
> properly when CONFIG_AUDITSYSCALL is not defined? With
> syscall_trace_enter() calling out to syscall_enter_audit() that is no
> longer inlined in the same header, and no dummy function/macro defined
> for syscall_enter_audit() when !CONFIG_AUDITSYSCALL, it looks like
> there might be an issue on some configurations, no?
It compiles properly due to dead code elimination on everything except on
old s390 compilers for whatever reasons.
I'll bite the bullet and add the stub inline for syscall_enter_audit(),
though keeping audit_context() __always_inline makes a lot of sense as
especially clang has a tendency to out of line the most trivial inlines.
Thanks,
tglx