Re: [PATCH -next] powerpc: kernel/time.c - cleanup warnings

From: Christophe Leroy
Date: Wed Mar 17 2021 - 07:17:42 EST

Le 17/03/2021 à 11:34, He Ying a écrit :
We found these warnings in arch/powerpc/kernel/time.c as follows:
warning: symbol 'decrementer_max' was not declared. Should it be static?
warning: symbol 'rtc_lock' was not declared. Should it be static?
warning: symbol 'dtl_consumer' was not declared. Should it be static?

Declare 'decrementer_max' in arch/powerpc/include/asm/time.h. And include
proper header in which 'rtc_lock' is declared. Move 'dtl_consumer'
definition behind "include <asm/dtl.h>" because 'dtl_consumer' is declared

Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
Signed-off-by: He Ying <heying24@xxxxxxxxxx>
arch/powerpc/include/asm/time.h | 1 +
arch/powerpc/kernel/time.c | 7 +++----
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/include/asm/time.h b/arch/powerpc/include/asm/time.h
index 8dd3cdb25338..2cd2b50bedda 100644
--- a/arch/powerpc/include/asm/time.h
+++ b/arch/powerpc/include/asm/time.h
@@ -22,6 +22,7 @@ extern unsigned long tb_ticks_per_jiffy;
extern unsigned long tb_ticks_per_usec;
extern unsigned long tb_ticks_per_sec;
extern struct clock_event_device decrementer_clockevent;
+extern u64 decrementer_max;
extern void generic_calibrate_decr(void);
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index b67d93a609a2..409967713ca6 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -55,6 +55,7 @@
#include <linux/sched/cputime.h>
#include <linux/sched/clock.h>
#include <linux/processor.h>
+#include <linux/mc146818rtc.h>

I don't think that's the good place. It has no link to powerpc, it is only by chance that it has the same name.

As rtc_lock is defined in powerpc time.c, I think you should declare it in powerpc asm/time.h

#include <asm/trace.h>
#include <asm/interrupt.h>
@@ -150,10 +151,6 @@ bool tb_invalid;
u64 __cputime_usec_factor;
-void (*dtl_consumer)(struct dtl_entry *, u64);
static void calc_cputime_factors(void)
struct div_result res;
@@ -179,6 +176,8 @@ static inline unsigned long read_spurr(unsigned long tb)
#include <asm/dtl.h>
+void (*dtl_consumer)(struct dtl_entry *, u64);
* Scan the dispatch trace log and count up the stolen time.
* Should be called with interrupts disabled.