Hi Florian, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.12-rc3 next-20210319] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Florian-Fainelli/MIPS-Add-support-for-CONFIG_DEBUG_VIRTUAL/20210320-032733 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 8b12a62a4e3ed4ae99c715034f557eb391d6b196 config: mips-randconfig-s032-20210318 (attached as .config) compiler: mipsel-linux-gcc (GCC) 9.3.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.3-277-gc089cd2d-dirty # https://github.com/0day-ci/linux/commit/1c409697fd2f3f5639d1900cfd811d4d72a2314a git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Florian-Fainelli/MIPS-Add-support-for-CONFIG_DEBUG_VIRTUAL/20210320-032733 git checkout 1c409697fd2f3f5639d1900cfd811d4d72a2314a # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) command-line: note: in included file: builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined builtin:0:0: sparse: this was the original definition builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined builtin:0:0: sparse: this was the original definition >> arch/mips/kernel/vdso.c:161:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile *x @@ got void [noderef] __iomem * @@ arch/mips/kernel/vdso.c:161:54: sparse: expected void const volatile *x arch/mips/kernel/vdso.c:161:54: sparse: got void [noderef] __iomem * vim +161 arch/mips/kernel/vdso.c ea7e0480a4b695 Paul Burton 2018-09-25 88 c52d0d30aef84a David Daney 2010-02-18 89 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) c52d0d30aef84a David Daney 2010-02-18 90 { ebb5e78cc63417 Alex Smith 2015-10-21 91 struct mips_vdso_image *image = current->thread.abi->vdso; c52d0d30aef84a David Daney 2010-02-18 92 struct mm_struct *mm = current->mm; 00578cd864d45a Paul Burton 2017-08-12 93 unsigned long gic_size, vvar_size, size, base, data_addr, vdso_addr, gic_pfn; ebb5e78cc63417 Alex Smith 2015-10-21 94 struct vm_area_struct *vma; ebb5e78cc63417 Alex Smith 2015-10-21 95 int ret; c52d0d30aef84a David Daney 2010-02-18 96 d8ed45c5dcd455 Michel Lespinasse 2020-06-08 97 if (mmap_write_lock_killable(mm)) 69048176078add Michal Hocko 2016-05-23 98 return -EINTR; c52d0d30aef84a David Daney 2010-02-18 99 aebdc6ff3b2e79 Yousong Zhou 2020-03-24 100 if (IS_ENABLED(CONFIG_MIPS_FP_SUPPORT)) { 432c6bacbd0c16 Paul Burton 2016-07-08 101 /* Map delay slot emulation page */ 432c6bacbd0c16 Paul Burton 2016-07-08 102 base = mmap_region(NULL, STACK_TOP, PAGE_SIZE, adcc81f148d733 Paul Burton 2018-12-20 103 VM_READ | VM_EXEC | 432c6bacbd0c16 Paul Burton 2016-07-08 104 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC, 897ab3e0c49e24 Mike Rapoport 2017-02-24 105 0, NULL); 432c6bacbd0c16 Paul Burton 2016-07-08 106 if (IS_ERR_VALUE(base)) { 432c6bacbd0c16 Paul Burton 2016-07-08 107 ret = base; 432c6bacbd0c16 Paul Burton 2016-07-08 108 goto out; 432c6bacbd0c16 Paul Burton 2016-07-08 109 } aebdc6ff3b2e79 Yousong Zhou 2020-03-24 110 } 432c6bacbd0c16 Paul Burton 2016-07-08 111 a7f4df4e21dd8a Alex Smith 2015-10-21 112 /* a7f4df4e21dd8a Alex Smith 2015-10-21 113 * Determine total area size. This includes the VDSO data itself, the a7f4df4e21dd8a Alex Smith 2015-10-21 114 * data page, and the GIC user page if present. Always create a mapping a7f4df4e21dd8a Alex Smith 2015-10-21 115 * for the GIC user area if the GIC is present regardless of whether it a7f4df4e21dd8a Alex Smith 2015-10-21 116 * is the current clocksource, in case it comes into use later on. We a7f4df4e21dd8a Alex Smith 2015-10-21 117 * only map a page even though the total area is 64K, as we only need a7f4df4e21dd8a Alex Smith 2015-10-21 118 * the counter registers at the start. a7f4df4e21dd8a Alex Smith 2015-10-21 119 */ 00578cd864d45a Paul Burton 2017-08-12 120 gic_size = mips_gic_present() ? PAGE_SIZE : 0; a7f4df4e21dd8a Alex Smith 2015-10-21 121 vvar_size = gic_size + PAGE_SIZE; a7f4df4e21dd8a Alex Smith 2015-10-21 122 size = vvar_size + image->size; a7f4df4e21dd8a Alex Smith 2015-10-21 123 0f02cfbc3d9e41 Paul Burton 2018-08-30 124 /* 0f02cfbc3d9e41 Paul Burton 2018-08-30 125 * Find a region that's large enough for us to perform the 0f02cfbc3d9e41 Paul Burton 2018-08-30 126 * colour-matching alignment below. 0f02cfbc3d9e41 Paul Burton 2018-08-30 127 */ 0f02cfbc3d9e41 Paul Burton 2018-08-30 128 if (cpu_has_dc_aliases) 0f02cfbc3d9e41 Paul Burton 2018-08-30 129 size += shm_align_mask + 1; 0f02cfbc3d9e41 Paul Burton 2018-08-30 130 ea7e0480a4b695 Paul Burton 2018-09-25 131 base = get_unmapped_area(NULL, vdso_base(), size, 0, 0); ebb5e78cc63417 Alex Smith 2015-10-21 132 if (IS_ERR_VALUE(base)) { ebb5e78cc63417 Alex Smith 2015-10-21 133 ret = base; ebb5e78cc63417 Alex Smith 2015-10-21 134 goto out; ebb5e78cc63417 Alex Smith 2015-10-21 135 } ebb5e78cc63417 Alex Smith 2015-10-21 136 0f02cfbc3d9e41 Paul Burton 2018-08-30 137 /* 0f02cfbc3d9e41 Paul Burton 2018-08-30 138 * If we suffer from dcache aliasing, ensure that the VDSO data page 0f02cfbc3d9e41 Paul Burton 2018-08-30 139 * mapping is coloured the same as the kernel's mapping of that memory. 0f02cfbc3d9e41 Paul Burton 2018-08-30 140 * This ensures that when the kernel updates the VDSO data userland 0f02cfbc3d9e41 Paul Burton 2018-08-30 141 * will observe it without requiring cache invalidations. 0f02cfbc3d9e41 Paul Burton 2018-08-30 142 */ 0f02cfbc3d9e41 Paul Burton 2018-08-30 143 if (cpu_has_dc_aliases) { 0f02cfbc3d9e41 Paul Burton 2018-08-30 144 base = __ALIGN_MASK(base, shm_align_mask); 24640f233b4660 Vincenzo Frascino 2019-06-21 145 base += ((unsigned long)vdso_data - gic_size) & shm_align_mask; 0f02cfbc3d9e41 Paul Burton 2018-08-30 146 } 0f02cfbc3d9e41 Paul Burton 2018-08-30 147 a7f4df4e21dd8a Alex Smith 2015-10-21 148 data_addr = base + gic_size; a7f4df4e21dd8a Alex Smith 2015-10-21 149 vdso_addr = data_addr + PAGE_SIZE; c52d0d30aef84a David Daney 2010-02-18 150 a7f4df4e21dd8a Alex Smith 2015-10-21 151 vma = _install_special_mapping(mm, base, vvar_size, ebb5e78cc63417 Alex Smith 2015-10-21 152 VM_READ | VM_MAYREAD, ebb5e78cc63417 Alex Smith 2015-10-21 153 &vdso_vvar_mapping); ebb5e78cc63417 Alex Smith 2015-10-21 154 if (IS_ERR(vma)) { ebb5e78cc63417 Alex Smith 2015-10-21 155 ret = PTR_ERR(vma); ebb5e78cc63417 Alex Smith 2015-10-21 156 goto out; c52d0d30aef84a David Daney 2010-02-18 157 } c52d0d30aef84a David Daney 2010-02-18 158 a7f4df4e21dd8a Alex Smith 2015-10-21 159 /* Map GIC user page. */ a7f4df4e21dd8a Alex Smith 2015-10-21 160 if (gic_size) { 00578cd864d45a Paul Burton 2017-08-12 @161 gic_pfn = virt_to_phys(mips_gic_base + MIPS_GIC_USER_OFS) >> PAGE_SHIFT; --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org