[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202508011029.WGeVHkWa-lkp@intel.com>
Date: Fri, 1 Aug 2025 10:41:09 +0800
From: kernel test robot <lkp@...el.com>
To: Kees Cook <kees@...nel.org>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: kernel/kstack_erase.c:34:56: sparse: sparse: incorrect type in
argument 3 (different address spaces)
Hi Kees,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 6a68cec16b647791d448102376a7eec2820e874f
commit: 32e42ab9fc88a884435c27527a433f61c4d2b61b sched/task_stack: Add missing const qualifier to end_of_stack()
date: 5 days ago
config: loongarch-randconfig-r112-20250801 (https://download.01.org/0day-ci/archive/20250801/202508011029.WGeVHkWa-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 8f09b03aebb71c154f3bbe725c29e3f47d37c26e)
reproduce: (https://download.01.org/0day-ci/archive/20250801/202508011029.WGeVHkWa-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508011029.WGeVHkWa-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> kernel/kstack_erase.c:34:56: sparse: sparse: incorrect type in argument 3 (different address spaces) @@ expected void * @@ got void [noderef] __user *buffer @@
kernel/kstack_erase.c:34:56: sparse: expected void *
kernel/kstack_erase.c:34:56: sparse: got void [noderef] __user *buffer
>> kernel/kstack_erase.c:54:35: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@ expected int ( [usertype] *proc_handler )( ... ) @@ got int ( * )( ... ) @@
kernel/kstack_erase.c:54:35: sparse: expected int ( [usertype] *proc_handler )( ... )
kernel/kstack_erase.c:54:35: sparse: got int ( * )( ... )
vim +34 kernel/kstack_erase.c
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 23
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 24 #ifdef CONFIG_SYSCTL
78eb4ea25cd5fd kernel/stackleak.c Joel Granados 2024-07-24 25 static int stack_erasing_sysctl(const struct ctl_table *table, int write,
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 26 void __user *buffer, size_t *lenp, loff_t *ppos)
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 27 {
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 28 int ret = 0;
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 29 int state = !static_branch_unlikely(&stack_erasing_bypass);
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 30 int prev_state = state;
0e148d3cca0dc1 kernel/stackleak.c Thomas Weißschuh 2024-05-03 31 struct ctl_table table_copy = *table;
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 32
0e148d3cca0dc1 kernel/stackleak.c Thomas Weißschuh 2024-05-03 33 table_copy.data = &state;
0e148d3cca0dc1 kernel/stackleak.c Thomas Weißschuh 2024-05-03 @34 ret = proc_dointvec_minmax(&table_copy, write, buffer, lenp, ppos);
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 35 state = !!state;
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 36 if (ret || !write || state == prev_state)
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 37 return ret;
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 38
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 39 if (state)
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 40 static_branch_disable(&stack_erasing_bypass);
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 41 else
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 42 static_branch_enable(&stack_erasing_bypass);
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 43
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 44 pr_warn("stackleak: kernel stack erasing is %s\n",
62e9c1e8ecee87 kernel/stackleak.c Thorsten Blum 2024-12-22 45 str_enabled_disabled(state));
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 46 return ret;
964c9dff009189 kernel/stackleak.c Alexander Popov 2018-08-17 47 }
1751f872cc97f9 kernel/stackleak.c Joel Granados 2025-01-28 48 static const struct ctl_table stackleak_sysctls[] = {
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 49 {
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 50 .procname = "stack_erasing",
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 51 .data = NULL,
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 52 .maxlen = sizeof(int),
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 53 .mode = 0600,
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 @54 .proc_handler = stack_erasing_sysctl,
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 55 .extra1 = SYSCTL_ZERO,
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 56 .extra2 = SYSCTL_ONE,
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 57 },
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 58 };
0df8bdd5e3b3e5 kernel/stackleak.c Xiaoming Ni 2022-01-21 59
:::::: The code at line 34 was first introduced by commit
:::::: 0e148d3cca0dc1a7c6063939f6cb9ba4866c39a7 stackleak: Use a copy of the ctl_table argument
:::::: TO: Thomas Weißschuh <linux@...ssschuh.net>
:::::: CC: Kees Cook <keescook@...omium.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists