https://bugzilla.kernel.org/show_bug.cgi?id=216180
--- Comment #3 from Alexander Potapenko (
gli...@google.com) ---
> Does KASAN interceptor tail-call memset_erms in this build?
It calls __memset:
ffffffff81c68d30 <memset>:
ffffffff81c68d30: 41 55 push %r13
ffffffff81c68d32: 41 89 f5 mov %esi,%r13d
ffffffff81c68d35: 41 54 push %r12
ffffffff81c68d37: 49 89 d4 mov %rdx,%r12
ffffffff81c68d3a: ba 01 00 00 00 mov $0x1,%edx
ffffffff81c68d3f: 55 push %rbp
ffffffff81c68d40: 48 8b 4c 24 18 mov 0x18(%rsp),%rcx
ffffffff81c68d45: 4c 89 e6 mov %r12,%rsi
ffffffff81c68d48: 48 89 fd mov %rdi,%rbp
ffffffff81c68d4b: e8 30 f8 ff ff call ffffffff81c68580
<kasan_check_range>
ffffffff81c68d50: 84 c0 test %al,%al
ffffffff81c68d52: 74 13 je ffffffff81c68d67
<memset+0x37>
ffffffff81c68d54: 4c 89 e2 mov %r12,%rdx
ffffffff81c68d57: 44 89 ee mov %r13d,%esi
ffffffff81c68d5a: 48 89 ef mov %rbp,%rdi
ffffffff81c68d5d: 5d pop %rbp
ffffffff81c68d5e: 41 5c pop %r12
ffffffff81c68d60: 41 5d pop %r13
ffffffff81c68d62: e9 79 81 5b 02 jmp ffffffff84220ee0
<__memset>
ffffffff81c68d67: 5d pop %rbp
ffffffff81c68d68: 31 c0 xor %eax,%eax
ffffffff81c68d6a: 41 5c pop %r12
ffffffff81c68d6c: 41 5d pop %r13
ffffffff81c68d6e: c3 ret
ffffffff81c68d6f: 90 nop
, which uses an ALTERNATIVE_2 to switch between memset_orig() and
memset_erms():
https://elixir.bootlin.com/linux/latest/source/arch/x86/lib/memset_64.S#L27