[mark:stackleak/rework 9/13] drivers/misc/lkdtm/stackleak.c:20:22: warning: incompatible pointer to integer conversion initializing 'const unsigned long' with an expression of type 'struct ftrace_ret_stack *'

From: kernel test robot
Date: Thu Apr 28 2022 - 11:24:58 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git stackleak/rework
head: eceae38b5363e034fea5ad4cf977734a864a2bb0
commit: 4aac8d85c42a73f2d4dcb11acf3e4ec669919e08 [9/13] lkdtm/stackleak: rework boundary management
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20220428/202204282335.OFfZpgnN-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c59473aacce38cd7dd77eebceaf3c98c5707ab3b)
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/mark/linux.git/commit/?id=4aac8d85c42a73f2d4dcb11acf3e4ec669919e08
git remote add mark https://git.kernel.org/pub/scm/linux/kernel/git/mark/linux.git
git fetch --no-tags mark stackleak/rework
git checkout 4aac8d85c42a73f2d4dcb11acf3e4ec669919e08
# 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=arm64 SHELL=/bin/bash drivers/misc/lkdtm/ drivers/net/wireless/realtek/rtw89/

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

All warnings (new ones prefixed by >>):

drivers/misc/lkdtm/stackleak.c:17:39: error: call to undeclared function 'stackleak_task_low_bound'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
const unsigned long task_stack_low = stackleak_task_low_bound(current);
^
drivers/misc/lkdtm/stackleak.c:18:40: error: call to undeclared function 'stackleak_task_high_bound'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
const unsigned long task_stack_high = stackleak_task_high_bound(current);
^
drivers/misc/lkdtm/stackleak.c:20:43: error: no member named 'lowest_stack' in 'struct task_struct'; did you mean 'ret_stack'?
const unsigned long lowest_sp = current->lowest_stack;
^~~~~~~~~~~~
ret_stack
include/linux/sched.h:1365:28: note: 'ret_stack' declared here
struct ftrace_ret_stack *ret_stack;
^
>> drivers/misc/lkdtm/stackleak.c:20:22: warning: incompatible pointer to integer conversion initializing 'const unsigned long' with an expression of type 'struct ftrace_ret_stack *' [-Wint-conversion]
const unsigned long lowest_sp = current->lowest_stack;
^ ~~~~~~~~~~~~~~~~~~~~~
drivers/misc/lkdtm/stackleak.c:42:16: error: call to undeclared function 'stackleak_find_top_of_poison'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
poison_high = stackleak_find_top_of_poison(task_stack_low, untracked_high);
^
1 warning and 4 errors generated.


vim +20 drivers/misc/lkdtm/stackleak.c

13
14 void lkdtm_STACKLEAK_ERASING(void)
15 {
16 const unsigned long task_stack_base = (unsigned long)task_stack_page(current);
17 const unsigned long task_stack_low = stackleak_task_low_bound(current);
18 const unsigned long task_stack_high = stackleak_task_high_bound(current);
19 const unsigned long current_sp = current_stack_pointer;
> 20 const unsigned long lowest_sp = current->lowest_stack;

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