mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 10:01:39 -05:00
lkdtm/bugs: Do not confuse the clang/objtool with busy wait loop
Since commiteb972eab07("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:eb972eab07("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>
This commit is contained in:
@@ -120,8 +120,8 @@ static void lkdtm_PANIC_IN_HARDIRQ(void)
|
||||
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);
|
||||
}
|
||||
@@ -150,8 +150,8 @@ static void lkdtm_BUG_IN_HARDIRQ(void)
|
||||
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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user