Since commit
eb972eab0794 ("lkdtm/bugs: Add cases for BUG and PANIC
occurring in hardirq context"), building with clang for x86_64 results
in the following warnings:
vmlinux.o: warning: objtool: lkdtm_PANIC_IN_HARDIRQ(): unexpected end of section .text.lkdtm_PANIC_IN_HARDIRQ
vmlinux.o: warning: objtool: lkdtm_BUG_IN_HARDIRQ(): unexpected end of section .text.lkdtm_BUG_IN_HARDIRQ
caused by busy "while (wait_for_...);" loops. Add READ_ONCE() and
cpu_relax() to better indicate the intention and avoid any unwanted
compiler optimisations.
Fixes: eb972eab0794 ("lkdtm/bugs: Add cases for BUG and PANIC occurring in hardirq context")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202512190111.jxFSqxUH-lkp@intel.com/
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
hrtimer_start(&timer, us_to_ktime(100), HRTIMER_MODE_REL_HARD);
- while (wait_for_panic)
- ;
+ while (READ_ONCE(wait_for_panic))
+ cpu_relax();
hrtimer_cancel(&timer);
}
CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
hrtimer_start(&timer, us_to_ktime(100), HRTIMER_MODE_REL_HARD);
- while (wait_for_bug)
- ;
+ while (READ_ONCE(wait_for_bug))
+ cpu_relax();
hrtimer_cancel(&timer);
}