[PATCH] tick: Include ktime.h and jiffies.h in linux/tick.h

Karl Mehltretter posted 1 patch 2 days, 16 hours ago
include/linux/tick.h | 2 ++
1 file changed, 2 insertions(+)
[PATCH] tick: Include ktime.h and jiffies.h in linux/tick.h
Posted by Karl Mehltretter 2 days, 16 hours ago
The !CONFIG_NO_HZ_COMMON stubs use ktime_add(), ktime_get() and
TICK_NSEC, but tick.h includes neither <linux/ktime.h> nor
<linux/jiffies.h>. Most configurations build only because those
declarations arrive transitively.

Commit 6440966067dc ("cpuset: Remove cpuset_cpu_is_isolated()") removed
<linux/cpuset.h> from <linux/sched/isolation.h>. The <linux/cpuset.h>
include chain had been satisfying these declarations before
<linux/tick.h> was parsed. Commit 8aa76aa41589 ("ring-buffer: Use a
housekeeping CPU to wake up waiters") then added
<linux/sched/isolation.h> to ring_buffer.c ahead of any header which
provides them. Neither change is wrong on its own: the failure requires
both and appeared in v7.0.

ARM rpc_defconfig + CONFIG_FUNCTION_TRACER fails to build:

  $ make ARCH=arm rpc_defconfig
  $ ./scripts/config -e FTRACE -e FUNCTION_TRACER
  $ make ARCH=arm olddefconfig
  $ make ARCH=arm kernel/trace/ring_buffer.o
  In file included from include/linux/sched/isolation.h:6,
                   from kernel/trace/ring_buffer.c:8:
  include/linux/tick.h: In function 'tick_nohz_get_next_hrtimer':
  include/linux/tick.h:156:9: error: implicit declaration of function
      'ktime_add'; did you mean 'size_add'?
  include/linux/tick.h:156:19: error: implicit declaration of function
      'ktime_get'; did you mean 'time_init'?
  include/linux/tick.h:156:32: error: 'TICK_NSEC' undeclared

Include the headers the file actually uses.

Fixes: 8aa76aa41589 ("ring-buffer: Use a housekeeping CPU to wake up waiters")
Assisted-by: Codex:gpt-5.6-sol
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
---
 include/linux/tick.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/linux/tick.h b/include/linux/tick.h
index 1cf4651f09ad..47750ccd1314 100644
--- a/include/linux/tick.h
+++ b/include/linux/tick.h
@@ -7,6 +7,8 @@
 
 #include <linux/clockchips.h>
 #include <linux/irqflags.h>
+#include <linux/jiffies.h>
+#include <linux/ktime.h>
 #include <linux/percpu.h>
 #include <linux/context_tracking_state.h>
 #include <linux/cpumask.h>
-- 
2.53.0