arch/arm/mm/copypage-fa.c:38:6: sparse: sparse: symbol 'fa_copy_user_highpage' was not declared. Should it be static?

From: kernel test robot
Date: Sun Aug 28 2022 - 00:52:50 EST


Hi Stephen,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 10d4879f9ef01cc6190fafe4257d06f375bab92c
commit: 3d427228f7370894680580fcd0381c0349624fa1 ARM: ixp4xx: enable multiplatform support
date: 5 months ago
config: arm-randconfig-s031-20220828 (https://download.01.org/0day-ci/archive/20220828/202208281252.U8zOEcHO-lkp@xxxxxxxxx/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3d427228f7370894680580fcd0381c0349624fa1
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 3d427228f7370894680580fcd0381c0349624fa1
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=arm SHELL=/bin/bash arch/arm/mm/ drivers/video/fbdev/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

sparse warnings: (new ones prefixed by >>)
>> arch/arm/mm/copypage-fa.c:38:6: sparse: sparse: symbol 'fa_copy_user_highpage' was not declared. Should it be static?
>> arch/arm/mm/copypage-fa.c:55:6: sparse: sparse: symbol 'fa_clear_user_highpage' was not declared. Should it be static?
--
>> arch/arm/mm/copypage-xscale.c:84:6: sparse: sparse: symbol 'xscale_mc_copy_user_highpage' was not declared. Should it be static?
>> arch/arm/mm/copypage-xscale.c:107:1: sparse: sparse: symbol 'xscale_mc_clear_user_highpage' was not declared. Should it be static?

vim +/fa_copy_user_highpage +38 arch/arm/mm/copypage-fa.c

28853ac8fe5221 Paulius Zaleckas 2009-03-25 37
28853ac8fe5221 Paulius Zaleckas 2009-03-25 @38 void fa_copy_user_highpage(struct page *to, struct page *from,
a3be6327163c22 Hans Ulli Kroll 2010-04-27 39 unsigned long vaddr, struct vm_area_struct *vma)
28853ac8fe5221 Paulius Zaleckas 2009-03-25 40 {
28853ac8fe5221 Paulius Zaleckas 2009-03-25 41 void *kto, *kfrom;
28853ac8fe5221 Paulius Zaleckas 2009-03-25 42
5472e862de2bc4 Cong Wang 2011-11-25 43 kto = kmap_atomic(to);
5472e862de2bc4 Cong Wang 2011-11-25 44 kfrom = kmap_atomic(from);
28853ac8fe5221 Paulius Zaleckas 2009-03-25 45 fa_copy_user_page(kto, kfrom);
5472e862de2bc4 Cong Wang 2011-11-25 46 kunmap_atomic(kfrom);
5472e862de2bc4 Cong Wang 2011-11-25 47 kunmap_atomic(kto);
28853ac8fe5221 Paulius Zaleckas 2009-03-25 48 }
28853ac8fe5221 Paulius Zaleckas 2009-03-25 49
28853ac8fe5221 Paulius Zaleckas 2009-03-25 50 /*
28853ac8fe5221 Paulius Zaleckas 2009-03-25 51 * Faraday optimised clear_user_page
28853ac8fe5221 Paulius Zaleckas 2009-03-25 52 *
28853ac8fe5221 Paulius Zaleckas 2009-03-25 53 * Same story as above.
28853ac8fe5221 Paulius Zaleckas 2009-03-25 54 */
28853ac8fe5221 Paulius Zaleckas 2009-03-25 @55 void fa_clear_user_highpage(struct page *page, unsigned long vaddr)
28853ac8fe5221 Paulius Zaleckas 2009-03-25 56 {
5472e862de2bc4 Cong Wang 2011-11-25 57 void *ptr, *kaddr = kmap_atomic(page);
28853ac8fe5221 Paulius Zaleckas 2009-03-25 58 asm volatile("\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 59 mov r1, %2 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 60 mov r2, #0 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 61 mov r3, #0 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 62 mov ip, #0 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 63 mov lr, #0 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 64 1: stmia %0, {r2, r3, ip, lr} @ 4\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 65 mcr p15, 0, %0, c7, c14, 1 @ 1 clean and invalidate D line\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 66 add %0, %0, #16 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 67 stmia %0, {r2, r3, ip, lr} @ 4\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 68 mcr p15, 0, %0, c7, c14, 1 @ 1 clean and invalidate D line\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 69 add %0, %0, #16 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 70 subs r1, r1, #1 @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 71 bne 1b @ 1\n\
28853ac8fe5221 Paulius Zaleckas 2009-03-25 72 mcr p15, 0, r1, c7, c10, 4 @ 1 drain WB"
28853ac8fe5221 Paulius Zaleckas 2009-03-25 73 : "=r" (ptr)
28853ac8fe5221 Paulius Zaleckas 2009-03-25 74 : "0" (kaddr), "I" (PAGE_SIZE / 32)
28853ac8fe5221 Paulius Zaleckas 2009-03-25 75 : "r1", "r2", "r3", "ip", "lr");
5472e862de2bc4 Cong Wang 2011-11-25 76 kunmap_atomic(kaddr);
28853ac8fe5221 Paulius Zaleckas 2009-03-25 77 }
28853ac8fe5221 Paulius Zaleckas 2009-03-25 78

:::::: The code at line 38 was first introduced by commit
:::::: 28853ac8fe5221de74a14f1182d7b2b383dfd85c ARM: Add support for FA526 v2

:::::: TO: Paulius Zaleckas <paulius.zaleckas@xxxxxxxxxxxx>
:::::: CC: Paulius Zaleckas <paulius.zaleckas@xxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://01.org/lkp