[tip:x86/cpu 5/7] arch/x86/mm/tlb.c:355:13: sparse: sparse: incorrect type in initializer (different address spaces)

From: kernel test robot
Date: Wed Jul 28 2021 - 10:19:41 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/cpu
head: b7fe54f6c2d437082dcbecfbd832f38edd9caaf4
commit: b5f06f64e269f9820cd5ad9e9a98afa6c8914b7a [5/7] x86/mm: Prepare for opt-in based L1D flush in switch_mm()
config: x86_64-randconfig-s032-20210728 (attached as .config)
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=b5f06f64e269f9820cd5ad9e9a98afa6c8914b7a
git remote add tip https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
git fetch --no-tags tip x86/cpu
git checkout b5f06f64e269f9820cd5ad9e9a98afa6c8914b7a
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64

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


sparse warnings: (new ones prefixed by >>)
>> arch/x86/mm/tlb.c:355:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void const [noderef] __percpu *__vpp_verify @@ got bool * @@
arch/x86/mm/tlb.c:355:13: sparse: expected void const [noderef] __percpu *__vpp_verify
arch/x86/mm/tlb.c:355:13: sparse: got bool *

vim +355 arch/x86/mm/tlb.c

337
338 static void l1d_flush_evaluate(unsigned long prev_mm, unsigned long next_mm,
339 struct task_struct *next)
340 {
341 /* Flush L1D if the outgoing task requests it */
342 if (prev_mm & LAST_USER_MM_L1D_FLUSH)
343 wrmsrl(MSR_IA32_FLUSH_CMD, L1D_FLUSH);
344
345 /* Check whether the incoming task opted in for L1D flush */
346 if (likely(!(next_mm & LAST_USER_MM_L1D_FLUSH)))
347 return;
348
349 /*
350 * Validate that it is not running on an SMT sibling as this would
351 * make the excercise pointless because the siblings share L1D. If
352 * it runs on a SMT sibling, notify it with SIGBUS on return to
353 * user/guest
354 */
> 355 if (this_cpu_read(cpu_info.smt_active)) {
356 clear_ti_thread_flag(&next->thread_info, TIF_SPEC_L1D_FLUSH);
357 next->l1d_flush_kill.func = l1d_flush_force_sigbus;
358 task_work_add(next, &next->l1d_flush_kill, TWA_RESUME);
359 }
360 }
361

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip