On 2025-08-13 at 17:17:02 +0200, Peter Zijlstra wrote: >On Tue, Aug 12, 2025 at 03:23:49PM +0200, Maciej Wieczor-Retman wrote: >> Inline KASAN on x86 does tag mismatch reports by passing the faulty >> address and metadata through the INT3 instruction - scheme that's setup >> in the LLVM's compiler code (specifically HWAddressSanitizer.cpp). >> >> Add a kasan hook to the INT3 handling function. >> >> Disable KASAN in an INT3 core kernel selftest function since it can raise >> a false tag mismatch report and potentially panic the kernel. >> >> Make part of that hook - which decides whether to die or recover from a >> tag mismatch - arch independent to avoid duplicating a long comment on >> both x86 and arm64 architectures. >> >> Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@xxxxxxxxx> > >Can we please split this into an arm64 and x86 patch. Also, why use int3 >here rather than a #UD trap, which we use for all other such cases? Sure, two patches seem okay. I'll first add all the new functions and modify the x86 code, then add the arm64 patch which will replace its die() + comment with kasan_inline_recover(). About INT3 I'm not sure, it's just how it's written in the LLVM code. I didn't see any justification why it's not #UD. My guess is SMD describes INT3 as an interrupt for debugger purposes while #UD is described as "for software testing". So from the documentation point INT3 seems to have a stronger case. Does INT3 interfere with something? Or is #UD better just because of consistency? -- Kind regards Maciej Wieczór-Retman