Hi "Aneesh, I love your patch! Perhaps something to improve: [auto build test WARNING on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Aneesh-Kumar-K-V/mm-demotion-Memory-tiers-and-demotion/20220622-163031 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220623/202206230603.yUtYS0xk-lkp@xxxxxxxxx/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-31-g4880bd19-dirty # https://github.com/intel-lab-lkp/linux/commit/97a1874c652abe1500768e5cab39b2d3dcdfb046 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Aneesh-Kumar-K-V/mm-demotion-Memory-tiers-and-demotion/20220622-163031 git checkout 97a1874c652abe1500768e5cab39b2d3dcdfb046 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> mm/memory-tiers.c:182:16: sparse: sparse: incompatible types in comparison expression (different address spaces): >> mm/memory-tiers.c:182:16: sparse: struct memory_tier [noderef] __rcu * >> mm/memory-tiers.c:182:16: sparse: struct memory_tier * mm/memory-tiers.c:214:27: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memory-tiers.c:214:27: sparse: struct memory_tier [noderef] __rcu * mm/memory-tiers.c:214:27: sparse: struct memory_tier * mm/memory-tiers.c:216:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memory-tiers.c:216:9: sparse: struct memory_tier [noderef] __rcu * mm/memory-tiers.c:216:9: sparse: struct memory_tier * mm/memory-tiers.c:221:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memory-tiers.c:221:9: sparse: struct memory_tier [noderef] __rcu * mm/memory-tiers.c:221:9: sparse: struct memory_tier * mm/memory-tiers.c:361:19: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memory-tiers.c:361:19: sparse: struct memory_tier [noderef] __rcu * mm/memory-tiers.c:361:19: sparse: struct memory_tier * mm/memory-tiers.c:614:17: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memory-tiers.c:614:17: sparse: struct memory_tier [noderef] __rcu * mm/memory-tiers.c:614:17: sparse: struct memory_tier * vim +182 mm/memory-tiers.c 169 170 static struct memory_tier *__node_get_memory_tier(int node) 171 { 172 pg_data_t *pgdat; 173 174 pgdat = NODE_DATA(node); 175 if (!pgdat) 176 return NULL; 177 /* 178 * Since we hold memory_tier_lock, we can avoid 179 * RCU read locks when accessing the details. No 180 * parallel updates are possible here. 181 */ > 182 return rcu_dereference_check(pgdat->memtier, 183 lockdep_is_held(&memory_tier_lock)); 184 } 185 -- 0-DAY CI Kernel Test Service https://01.org/lkp