On 3/14/22 08:50, Thomas Gleixner wrote:
On Tue, Feb 22 2022 at 21:21, Junaid Shahid wrote:
#define DEFINE_IDTENTRY_RAW(func) \
-__visible noinstr void func(struct pt_regs *regs)
+static __always_inline void __##func(struct pt_regs *regs); \
+ \
+__visible noinstr void func(struct pt_regs *regs) \
+{ \
+ asi_intr_enter(); \
This is wrong. You cannot invoke arbitrary code within a noinstr
section.
Please enable CONFIG_VMLINUX_VALIDATION and watch the build result with
and without your patches.
Thanks,
tglx
Thank you for the pointer. It seems that marking asi_intr_enter/exit and asi_enter/exit, and the few functions that they in turn call, as noinstr would fix this, correct? (Along with removing the VM_BUG_ONs from those functions and using notrace/nodebug variants of a couple of functions).
Thanks,
Junaid