Hi, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.17-rc4 next-20220215] [cannot apply to hnaz-mm/master] [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/andrey-konovalov-linux-dev/kasan-test-support-async-again-and-asymm-modes-for-HW_TAGS/20220215-232923 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git d567f5db412ed52de0b3b3efca4a451263de6108 config: arm-allmodconfig (https://download.01.org/0day-ci/archive/20220216/202202160721.IhkGJaXa-lkp@xxxxxxxxx/config) compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0 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 # https://github.com/0day-ci/linux/commit/50334edb33a25643468715fbfc0e6d4a7d594432 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review andrey-konovalov-linux-dev/kasan-test-support-async-again-and-asymm-modes-for-HW_TAGS/20220215-232923 git checkout 50334edb33a25643468715fbfc0e6d4a7d594432 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash lib// mm/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): In file included from <command-line>: mm/kasan/report.c: In function 'kasan_update_kunit_status': >> mm/kasan/report.c:360:26: error: invalid use of undefined type 'struct kunit_kasan_status' 360 | WRITE_ONCE(status->report_found, true); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:360:9: note: in expansion of macro 'WRITE_ONCE' 360 | WRITE_ONCE(status->report_found, true); | ^~~~~~~~~~ >> mm/kasan/report.c:360:26: error: invalid use of undefined type 'struct kunit_kasan_status' 360 | WRITE_ONCE(status->report_found, true); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:360:9: note: in expansion of macro 'WRITE_ONCE' 360 | WRITE_ONCE(status->report_found, true); | ^~~~~~~~~~ >> mm/kasan/report.c:360:26: error: invalid use of undefined type 'struct kunit_kasan_status' 360 | WRITE_ONCE(status->report_found, true); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:360:9: note: in expansion of macro 'WRITE_ONCE' 360 | WRITE_ONCE(status->report_found, true); | ^~~~~~~~~~ >> mm/kasan/report.c:360:26: error: invalid use of undefined type 'struct kunit_kasan_status' 360 | WRITE_ONCE(status->report_found, true); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:360:9: note: in expansion of macro 'WRITE_ONCE' 360 | WRITE_ONCE(status->report_found, true); | ^~~~~~~~~~ >> mm/kasan/report.c:360:26: error: invalid use of undefined type 'struct kunit_kasan_status' 360 | WRITE_ONCE(status->report_found, true); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:360:9: note: in expansion of macro 'WRITE_ONCE' 360 | WRITE_ONCE(status->report_found, true); | ^~~~~~~~~~ In file included from ./arch/arm/include/generated/asm/rwonce.h:1, from include/linux/compiler.h:255, from include/linux/build_bug.h:5, from include/linux/bits.h:22, from include/linux/bitops.h:6, from mm/kasan/report.c:12: >> mm/kasan/report.c:360:26: error: invalid use of undefined type 'struct kunit_kasan_status' 360 | WRITE_ONCE(status->report_found, true); | ^~ include/asm-generic/rwonce.h:55:27: note: in definition of macro '__WRITE_ONCE' 55 | *(volatile typeof(x) *)&(x) = (val); \ | ^ mm/kasan/report.c:360:9: note: in expansion of macro 'WRITE_ONCE' 360 | WRITE_ONCE(status->report_found, true); | ^~~~~~~~~~ >> mm/kasan/report.c:360:26: error: invalid use of undefined type 'struct kunit_kasan_status' 360 | WRITE_ONCE(status->report_found, true); | ^~ include/asm-generic/rwonce.h:55:34: note: in definition of macro '__WRITE_ONCE' 55 | *(volatile typeof(x) *)&(x) = (val); \ | ^ mm/kasan/report.c:360:9: note: in expansion of macro 'WRITE_ONCE' 360 | WRITE_ONCE(status->report_found, true); | ^~~~~~~~~~ In file included from <command-line>: mm/kasan/report.c:361:26: error: invalid use of undefined type 'struct kunit_kasan_status' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:361:9: note: in expansion of macro 'WRITE_ONCE' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~~~~~~~~~ mm/kasan/report.c:361:26: error: invalid use of undefined type 'struct kunit_kasan_status' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:361:9: note: in expansion of macro 'WRITE_ONCE' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~~~~~~~~~ mm/kasan/report.c:361:26: error: invalid use of undefined type 'struct kunit_kasan_status' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:361:9: note: in expansion of macro 'WRITE_ONCE' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~~~~~~~~~ mm/kasan/report.c:361:26: error: invalid use of undefined type 'struct kunit_kasan_status' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:60:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 60 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/kasan/report.c:361:9: note: in expansion of macro 'WRITE_ONCE' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~~~~~~~~~ mm/kasan/report.c:361:26: error: invalid use of undefined type 'struct kunit_kasan_status' 361 | WRITE_ONCE(status->sync_fault, sync); | ^~ include/linux/compiler_types.h:326:23: note: in definition of macro '__compiletime_assert' 326 | if (!(condition)) \ | ^~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' -- lib/test_kasan.c: In function 'kasan_test_init': >> lib/test_kasan.c:56:20: error: invalid use of undefined type 'struct kunit_kasan_status' 56 | test_status.report_found = false; | ^ lib/test_kasan.c:57:20: error: invalid use of undefined type 'struct kunit_kasan_status' 57 | test_status.sync_fault = false; | ^ In file included from lib/test_kasan.c:25: lib/test_kasan.c: In function 'kasan_test_exit': lib/test_kasan.c:66:45: error: invalid use of undefined type 'struct kunit_kasan_status' 66 | KUNIT_EXPECT_FALSE(test, test_status.report_found); | ^ include/kunit/test.h:782:28: note: in definition of macro 'KUNIT_ASSERTION' 782 | pass, \ | ^~~~ include/kunit/test.h:841:9: note: in expansion of macro 'KUNIT_UNARY_ASSERTION' 841 | KUNIT_UNARY_ASSERTION(test, \ | ^~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:849:9: note: in expansion of macro 'KUNIT_FALSE_MSG_ASSERTION' 849 | KUNIT_FALSE_MSG_ASSERTION(test, assert_type, condition, NULL) | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:1341:9: note: in expansion of macro 'KUNIT_FALSE_ASSERTION' 1341 | KUNIT_FALSE_ASSERTION(test, KUNIT_EXPECTATION, condition) | ^~~~~~~~~~~~~~~~~~~~~ lib/test_kasan.c:66:9: note: in expansion of macro 'KUNIT_EXPECT_FALSE' 66 | KUNIT_EXPECT_FALSE(test, test_status.report_found); | ^~~~~~~~~~~~~~~~~~ lib/test_kasan.c: In function 'kmalloc_oob_right': lib/test_kasan.c:94:55: error: invalid use of undefined type 'struct kunit_kasan_status' 94 | KUNIT_EXPECT_FALSE(test, READ_ONCE(test_status.report_found)); \ | ^ include/kunit/test.h:782:28: note: in definition of macro 'KUNIT_ASSERTION' 782 | pass, \ | ^~~~ include/kunit/test.h:841:9: note: in expansion of macro 'KUNIT_UNARY_ASSERTION' 841 | KUNIT_UNARY_ASSERTION(test, \ | ^~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:849:9: note: in expansion of macro 'KUNIT_FALSE_MSG_ASSERTION' 849 | KUNIT_FALSE_MSG_ASSERTION(test, assert_type, condition, NULL) | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:1341:9: note: in expansion of macro 'KUNIT_FALSE_ASSERTION' 1341 | KUNIT_FALSE_ASSERTION(test, KUNIT_EXPECTATION, condition) | ^~~~~~~~~~~~~~~~~~~~~ lib/test_kasan.c:94:9: note: in expansion of macro 'KUNIT_EXPECT_FALSE' 94 | KUNIT_EXPECT_FALSE(test, READ_ONCE(test_status.report_found)); \ | ^~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:334:9: note: in expansion of macro '__compiletime_assert' 334 | __compiletime_assert(condition, msg, prefix, suffix) | ^~~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 49 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/test_kasan.c:94:34: note: in expansion of macro 'READ_ONCE' 94 | KUNIT_EXPECT_FALSE(test, READ_ONCE(test_status.report_found)); \ | ^~~~~~~~~ lib/test_kasan.c:138:17: note: in expansion of macro 'KUNIT_EXPECT_KASAN_FAIL' 138 | KUNIT_EXPECT_KASAN_FAIL(test, ptr[size] = 'x'); | ^~~~~~~~~~~~~~~~~~~~~~~ lib/test_kasan.c:94:55: error: invalid use of undefined type 'struct kunit_kasan_status' 94 | KUNIT_EXPECT_FALSE(test, READ_ONCE(test_status.report_found)); \ | ^ include/kunit/test.h:782:28: note: in definition of macro 'KUNIT_ASSERTION' 782 | pass, \ | ^~~~ include/kunit/test.h:841:9: note: in expansion of macro 'KUNIT_UNARY_ASSERTION' 841 | KUNIT_UNARY_ASSERTION(test, \ | ^~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:849:9: note: in expansion of macro 'KUNIT_FALSE_MSG_ASSERTION' 849 | KUNIT_FALSE_MSG_ASSERTION(test, assert_type, condition, NULL) | ^~~~~~~~~~~~~~~~~~~~~~~~~ include/kunit/test.h:1341:9: note: in expansion of macro 'KUNIT_FALSE_ASSERTION' 1341 | KUNIT_FALSE_ASSERTION(test, KUNIT_EXPECTATION, condition) | ^~~~~~~~~~~~~~~~~~~~~ lib/test_kasan.c:94:9: note: in expansion of macro 'KUNIT_EXPECT_FALSE' 94 | KUNIT_EXPECT_FALSE(test, READ_ONCE(test_status.report_found)); \ | ^~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:334:9: note: in expansion of macro '__compiletime_assert' 334 | __compiletime_assert(condition, msg, prefix, suffix) | ^~~~~~~~~~~~~~~~~~~~ include/linux/compiler_types.h:346:9: note: in expansion of macro '_compiletime_assert' 346 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) | ^~~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~~~~~~ include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word' 36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ | ^~~~~~~~~~~~~ include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type' 49 | compiletime_assert_rwonce_type(x); \ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/test_kasan.c:94:34: note: in expansion of macro 'READ_ONCE' 94 | KUNIT_EXPECT_FALSE(test, READ_ONCE(test_status.report_found)); \ vim +360 mm/kasan/report.c 345 346 #if IS_ENABLED(CONFIG_KUNIT) 347 static void kasan_update_kunit_status(struct kunit *cur_test, bool sync) 348 { 349 struct kunit_resource *resource; 350 struct kunit_kasan_status *status; 351 352 resource = kunit_find_named_resource(cur_test, "kasan_status"); 353 354 if (!resource) { 355 kunit_set_failure(cur_test); 356 return; 357 } 358 359 status = (struct kunit_kasan_status *)resource->data; > 360 WRITE_ONCE(status->report_found, true); 361 WRITE_ONCE(status->sync_fault, sync); 362 kunit_put_resource(resource); 363 } 364 #endif /* IS_ENABLED(CONFIG_KUNIT) */ 365 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx