tree: https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git slub-tiny-v1r3 head: 630b00e20785d37fea0ce096b0f19c4267d5c6f5 commit: 3cdb7b6ad16a9d95603b482969fa870f996ac9dc [5/16] mm, slab: ignore hardened usercopy parameters when disabled config: i386-randconfig-a002 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git/commit/?id=3cdb7b6ad16a9d95603b482969fa870f996ac9dc git remote add vbabka https://git.kernel.org/pub/scm/linux/kernel/git/vbabka/linux.git git fetch --no-tags vbabka slub-tiny-v1r3 git checkout 3cdb7b6ad16a9d95603b482969fa870f996ac9dc # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): >> mm/slab_common.c:603:44: error: no member named 'usersize' in 'struct kmem_cache' if (kp.kp_slab_cache && kp.kp_slab_cache->usersize) ~~~~~~~~~~~~~~~~ ^ mm/slab_common.c:604:41: error: no member named 'usersize' in 'struct kmem_cache' pr_cont(" size %u", kp.kp_slab_cache->usersize); ~~~~~~~~~~~~~~~~ ^ include/linux/printk.h:542:26: note: expanded from macro 'pr_cont' printk(KERN_CONT fmt, ##__VA_ARGS__) ^~~~~~~~~~~ include/linux/printk.h:457:60: note: expanded from macro 'printk' #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__) ^~~~~~~~~~~ include/linux/printk.h:429:19: note: expanded from macro 'printk_index_wrap' _p_func(_fmt, ##__VA_ARGS__); \ ^~~~~~~~~~~ 2 errors generated. vim +603 mm/slab_common.c 2dfe63e61cc31e Marco Elver 2022-04-14 557 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 558 /** 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 559 * kmem_dump_obj - Print available slab provenance information 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 560 * @object: slab object for which to find provenance information. 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 561 * 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 562 * This function uses pr_cont(), so that the caller is expected to have 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 563 * printed out whatever preamble is appropriate. The provenance information 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 564 * depends on the type of object and on how much debugging is enabled. 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 565 * For a slab-cache object, the fact that it is a slab object is printed, 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 566 * and, if available, the slab name, return address, and stack trace from e548eaa116d858 Maninder Singh 2021-03-16 567 * the allocation and last free path of that object. 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 568 * 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 569 * This function will splat if passed a pointer to a non-slab object. 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 570 * If you are not sure what type of object you have, you should instead 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 571 * use mem_dump_obj(). 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 572 */ 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 573 void kmem_dump_obj(void *object) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 574 { 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 575 char *cp = IS_ENABLED(CONFIG_MMU) ? "" : "/vmalloc"; 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 576 int i; 7213230af5e1e8 Matthew Wilcox (Oracle 2021-10-04 577) struct slab *slab; 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 578 unsigned long ptroffset; 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 579 struct kmem_obj_info kp = { }; 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 580 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 581 if (WARN_ON_ONCE(!virt_addr_valid(object))) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 582 return; 7213230af5e1e8 Matthew Wilcox (Oracle 2021-10-04 583) slab = virt_to_slab(object); 7213230af5e1e8 Matthew Wilcox (Oracle 2021-10-04 584) if (WARN_ON_ONCE(!slab)) { 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 585 pr_cont(" non-slab memory.\n"); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 586 return; 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 587 } 7213230af5e1e8 Matthew Wilcox (Oracle 2021-10-04 588) kmem_obj_info(&kp, object, slab); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 589 if (kp.kp_slab_cache) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 590 pr_cont(" slab%s %s", cp, kp.kp_slab_cache->name); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 591 else 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 592 pr_cont(" slab%s", cp); 2dfe63e61cc31e Marco Elver 2022-04-14 593 if (is_kfence_address(object)) 2dfe63e61cc31e Marco Elver 2022-04-14 594 pr_cont(" (kfence)"); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 595 if (kp.kp_objp) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 596 pr_cont(" start %px", kp.kp_objp); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 597 if (kp.kp_data_offset) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 598 pr_cont(" data offset %lu", kp.kp_data_offset); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 599 if (kp.kp_objp) { 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 600 ptroffset = ((char *)object - (char *)kp.kp_objp) - kp.kp_data_offset; 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 601 pr_cont(" pointer offset %lu", ptroffset); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 602 } 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 @603 if (kp.kp_slab_cache && kp.kp_slab_cache->usersize) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 604 pr_cont(" size %u", kp.kp_slab_cache->usersize); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 605 if (kp.kp_ret) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 606 pr_cont(" allocated at %pS\n", kp.kp_ret); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 607 else 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 608 pr_cont("\n"); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 609 for (i = 0; i < ARRAY_SIZE(kp.kp_stack); i++) { 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 610 if (!kp.kp_stack[i]) 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 611 break; 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 612 pr_info(" %pS\n", kp.kp_stack[i]); 8e7f37f2aaa56b Paul E. McKenney 2020-12-07 613 } e548eaa116d858 Maninder Singh 2021-03-16 614 e548eaa116d858 Maninder Singh 2021-03-16 615 if (kp.kp_free_stack[0]) e548eaa116d858 Maninder Singh 2021-03-16 616 pr_cont(" Free path:\n"); e548eaa116d858 Maninder Singh 2021-03-16 617 e548eaa116d858 Maninder Singh 2021-03-16 618 for (i = 0; i < ARRAY_SIZE(kp.kp_free_stack); i++) { e548eaa116d858 Maninder Singh 2021-03-16 619 if (!kp.kp_free_stack[i]) e548eaa116d858 Maninder Singh 2021-03-16 620 break; e548eaa116d858 Maninder Singh 2021-03-16 621 pr_info(" %pS\n", kp.kp_free_stack[i]); e548eaa116d858 Maninder Singh 2021-03-16 622 } e548eaa116d858 Maninder Singh 2021-03-16 623 :::::: The code at line 603 was first introduced by commit :::::: 8e7f37f2aaa56b723a24f6872817cf9c6410b613 mm: Add mem_dump_obj() to print source of memory block :::::: TO: Paul E. McKenney :::::: CC: Paul E. McKenney -- 0-DAY CI Kernel Test Service https://01.org/lkp