[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202305240648.QYvD96ZA-lkp@intel.com>
Date: Wed, 24 May 2023 07:14:12 +0800
From: kernel test robot <lkp@...el.com>
To: Nathan Chancellor <nathan@...nel.org>
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
linux-kernel@...r.kernel.org,
"Russell King (Oracle)" <rmk+kernel@...linux.org.uk>
Subject: arch/arm/mach-ep93xx/timer-ep93xx.c:63:5: warning: no previous
prototype for function 'ep93xx_clocksource_read'
Hi Nathan,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5fe326b4467689ef3690491ee2ad25ff4d81fe59
commit: 5eb6e280432ddc9b755193552f3a070da8d7455c ARM: 9289/1: Allow pre-ARMv5 builds with ld.lld 16.0.0 and newer
date: 4 months ago
config: arm-ep93xx_defconfig
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 4faf3aaf28226a4e950c103a14f6fc1d1fdabb1b)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5eb6e280432ddc9b755193552f3a070da8d7455c
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 5eb6e280432ddc9b755193552f3a070da8d7455c
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202305240648.QYvD96ZA-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm/mach-ep93xx/timer-ep93xx.c:63:5: warning: no previous prototype for function 'ep93xx_clocksource_read' [-Wmissing-prototypes]
u64 ep93xx_clocksource_read(struct clocksource *c)
^
arch/arm/mach-ep93xx/timer-ep93xx.c:63:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
u64 ep93xx_clocksource_read(struct clocksource *c)
^
static
>> arch/arm/mach-ep93xx/timer-ep93xx.c:120:13: warning: no previous prototype for function 'ep93xx_timer_init' [-Wmissing-prototypes]
void __init ep93xx_timer_init(void)
^
arch/arm/mach-ep93xx/timer-ep93xx.c:120:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __init ep93xx_timer_init(void)
^
static
2 warnings generated.
vim +/ep93xx_clocksource_read +63 arch/arm/mach-ep93xx/timer-ep93xx.c
000bc17817bfe9 Linus Walleij 2015-06-15 62
a5a1d1c2914b53 Thomas Gleixner 2016-12-21 @63 u64 ep93xx_clocksource_read(struct clocksource *c)
000bc17817bfe9 Linus Walleij 2015-06-15 64 {
000bc17817bfe9 Linus Walleij 2015-06-15 65 u64 ret;
000bc17817bfe9 Linus Walleij 2015-06-15 66
d118d977c19ef7 Linus Walleij 2015-06-15 67 ret = readl(EP93XX_TIMER4_VALUE_LOW);
d118d977c19ef7 Linus Walleij 2015-06-15 68 ret |= ((u64) (readl(EP93XX_TIMER4_VALUE_HIGH) & 0xff) << 32);
a5a1d1c2914b53 Thomas Gleixner 2016-12-21 69 return (u64) ret;
000bc17817bfe9 Linus Walleij 2015-06-15 70 }
000bc17817bfe9 Linus Walleij 2015-06-15 71
000bc17817bfe9 Linus Walleij 2015-06-15 72 static int ep93xx_clkevt_set_next_event(unsigned long next,
000bc17817bfe9 Linus Walleij 2015-06-15 73 struct clock_event_device *evt)
000bc17817bfe9 Linus Walleij 2015-06-15 74 {
000bc17817bfe9 Linus Walleij 2015-06-15 75 /* Default mode: periodic, off, 508 kHz */
000bc17817bfe9 Linus Walleij 2015-06-15 76 u32 tmode = EP93XX_TIMER123_CONTROL_MODE |
000bc17817bfe9 Linus Walleij 2015-06-15 77 EP93XX_TIMER123_CONTROL_CLKSEL;
000bc17817bfe9 Linus Walleij 2015-06-15 78
000bc17817bfe9 Linus Walleij 2015-06-15 79 /* Clear timer */
d5878e6e228941 Linus Walleij 2015-06-15 80 writel(tmode, EP93XX_TIMER3_CONTROL);
000bc17817bfe9 Linus Walleij 2015-06-15 81
000bc17817bfe9 Linus Walleij 2015-06-15 82 /* Set next event */
d5878e6e228941 Linus Walleij 2015-06-15 83 writel(next, EP93XX_TIMER3_LOAD);
d118d977c19ef7 Linus Walleij 2015-06-15 84 writel(tmode | EP93XX_TIMER123_CONTROL_ENABLE,
d5878e6e228941 Linus Walleij 2015-06-15 85 EP93XX_TIMER3_CONTROL);
000bc17817bfe9 Linus Walleij 2015-06-15 86 return 0;
000bc17817bfe9 Linus Walleij 2015-06-15 87 }
000bc17817bfe9 Linus Walleij 2015-06-15 88
000bc17817bfe9 Linus Walleij 2015-06-15 89
a54868b460b65b Viresh Kumar 2015-08-06 90 static int ep93xx_clkevt_shutdown(struct clock_event_device *evt)
000bc17817bfe9 Linus Walleij 2015-06-15 91 {
000bc17817bfe9 Linus Walleij 2015-06-15 92 /* Disable timer */
d5878e6e228941 Linus Walleij 2015-06-15 93 writel(0, EP93XX_TIMER3_CONTROL);
a54868b460b65b Viresh Kumar 2015-08-06 94
a54868b460b65b Viresh Kumar 2015-08-06 95 return 0;
000bc17817bfe9 Linus Walleij 2015-06-15 96 }
361c81f996707e Linus Walleij 2015-06-15 97
000bc17817bfe9 Linus Walleij 2015-06-15 98 static struct clock_event_device ep93xx_clockevent = {
000bc17817bfe9 Linus Walleij 2015-06-15 99 .name = "timer1",
000bc17817bfe9 Linus Walleij 2015-06-15 100 .features = CLOCK_EVT_FEAT_ONESHOT,
a54868b460b65b Viresh Kumar 2015-08-06 101 .set_state_shutdown = ep93xx_clkevt_shutdown,
a54868b460b65b Viresh Kumar 2015-08-06 102 .set_state_oneshot = ep93xx_clkevt_shutdown,
a54868b460b65b Viresh Kumar 2015-08-06 103 .tick_resume = ep93xx_clkevt_shutdown,
000bc17817bfe9 Linus Walleij 2015-06-15 104 .set_next_event = ep93xx_clkevt_set_next_event,
000bc17817bfe9 Linus Walleij 2015-06-15 105 .rating = 300,
000bc17817bfe9 Linus Walleij 2015-06-15 106 };
361c81f996707e Linus Walleij 2015-06-15 107
361c81f996707e Linus Walleij 2015-06-15 108 static irqreturn_t ep93xx_timer_interrupt(int irq, void *dev_id)
361c81f996707e Linus Walleij 2015-06-15 109 {
000bc17817bfe9 Linus Walleij 2015-06-15 110 struct clock_event_device *evt = dev_id;
000bc17817bfe9 Linus Walleij 2015-06-15 111
361c81f996707e Linus Walleij 2015-06-15 112 /* Writing any value clears the timer interrupt */
d5878e6e228941 Linus Walleij 2015-06-15 113 writel(1, EP93XX_TIMER3_CLEAR);
361c81f996707e Linus Walleij 2015-06-15 114
000bc17817bfe9 Linus Walleij 2015-06-15 115 evt->event_handler(evt);
361c81f996707e Linus Walleij 2015-06-15 116
361c81f996707e Linus Walleij 2015-06-15 117 return IRQ_HANDLED;
361c81f996707e Linus Walleij 2015-06-15 118 }
361c81f996707e Linus Walleij 2015-06-15 119
361c81f996707e Linus Walleij 2015-06-15 @120 void __init ep93xx_timer_init(void)
:::::: The code at line 63 was first introduced by commit
:::::: a5a1d1c2914b5316924c7893eb683a5420ebd3be clocksource: Use a plain u64 instead of cycle_t
:::::: TO: Thomas Gleixner <tglx@...utronix.de>
:::::: CC: Thomas Gleixner <tglx@...utronix.de>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
View attachment "config" of type "text/plain" (82924 bytes)
Powered by blists - more mailing lists