[frederic-dynticks:preempt/arm-v2 3/4] arch/arm64/kernel/entry-common.c:239:14: warning: no previous prototype for function 'arm64_preempt_schedule_irq'
From: kernel test robot
Date: Thu Oct 28 2021 - 09:31:49 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git preempt/arm-v2
head: 5700542b609d9ab640210d7dd93621c7967688e6
commit: 516f540feccbcc52e1042de823ad0b28ac9ecd34 [3/4] arm64: Implement IRQ exit preemption static call for dynamic preemption
config: arm64-randconfig-r033-20211027 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 5db7568a6a1fcb408eb8988abdaff2a225a8eb72)
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 arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git/commit/?id=516f540feccbcc52e1042de823ad0b28ac9ecd34
git remote add frederic-dynticks https://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
git fetch --no-tags frederic-dynticks preempt/arm-v2
git checkout 516f540feccbcc52e1042de823ad0b28ac9ecd34
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All warnings (new ones prefixed by >>):
>> arch/arm64/kernel/entry-common.c:239:14: warning: no previous prototype for function 'arm64_preempt_schedule_irq' [-Wmissing-prototypes]
void __sched arm64_preempt_schedule_irq(void)
^
arch/arm64/kernel/entry-common.c:239:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void __sched arm64_preempt_schedule_irq(void)
^
static
1 warning generated.
vim +/arm64_preempt_schedule_irq +239 arch/arm64/kernel/entry-common.c
238
> 239 void __sched arm64_preempt_schedule_irq(void)
240 {
241 lockdep_assert_irqs_disabled();
242
243 /*
244 * DAIF.DA are cleared at the start of IRQ/FIQ handling, and when GIC
245 * priority masking is used the GIC irqchip driver will clear DAIF.IF
246 * using gic_arch_enable_irqs() for normal IRQs. If anything is set in
247 * DAIF we must have handled an NMI, so skip preemption.
248 */
249 if (system_uses_irq_prio_masking() && read_sysreg(daif))
250 return;
251
252 /*
253 * Preempting a task from an IRQ means we leave copies of PSTATE
254 * on the stack. cpufeature's enable calls may modify PSTATE, but
255 * resuming one of these preempted tasks would undo those changes.
256 *
257 * Only allow a task to be preempted once cpufeatures have been
258 * enabled.
259 */
260 if (system_capabilities_finalized())
261 preempt_schedule_irq();
262 }
263 #ifdef CONFIG_PREEMPT_DYNAMIC
264 DEFINE_STATIC_CALL(irqentry_exit_cond_resched, arm64_preempt_schedule_irq);
265 #endif
266
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip