Hi Anjali, kernel test robot noticed the following build errors: [auto build test ERROR on net-next/main] url: https://github.com/intel-lab-lkp/linux/commits/Anjali-Kulkarni/connector-cn_proc-Add-hash-table-for-threads/20241018-021755 base: net-next/main patch link: https://lore.kernel.org/r/20241017181436.2047508-3-anjali.k.kulkarni%40oracle.com patch subject: [PATCH net-next v5 2/3] connector/cn_proc: Kunit tests for threads hash table config: sparc-randconfig-001-20241019 (https://download.01.org/0day-ci/archive/20241019/202410190945.sGeQPUMr-lkp@xxxxxxxxx/config) compiler: sparc-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241019/202410190945.sGeQPUMr-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202410190945.sGeQPUMr-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): sparc-linux-ld: lib/cn_hash_test.o: in function `cn_hash_test_dup_del': >> lib/cn_hash_test.c:140:(.text+0x44): undefined reference to `cn_del_get_exval' >> sparc-linux-ld: lib/cn_hash_test.c:143:(.text+0xb4): undefined reference to `cn_del_get_exval' >> sparc-linux-ld: lib/cn_hash_test.c:146:(.text+0x128): undefined reference to `cn_table_empty' sparc-linux-ld: lib/cn_hash_test.o: in function `cn_display_htable': >> lib/cn_hash_test.c:42:(.text+0x1f8): undefined reference to `cn_display_hlist' sparc-linux-ld: lib/cn_hash_test.o: in function `cn_hash_test_del_get_exval': lib/cn_hash_test.c:103:(.text+0x2bc): undefined reference to `cn_del_get_exval' sparc-linux-ld: lib/cn_hash_test.c:109:(.text+0x350): undefined reference to `cn_table_empty' sparc-linux-ld: lib/cn_hash_test.o: in function `cn_hash_test_dup_add': >> lib/cn_hash_test.c:118:(.text+0x3f0): undefined reference to `cn_add_elem' >> sparc-linux-ld: lib/cn_hash_test.c:121:(.text+0x458): undefined reference to `cn_get_exval' >> sparc-linux-ld: lib/cn_hash_test.c:127:(.text+0x4d8): undefined reference to `cn_add_elem' sparc-linux-ld: lib/cn_hash_test.c:130:(.text+0x540): undefined reference to `cn_get_exval' sparc-linux-ld: lib/cn_hash_test.o: in function `cn_hash_test_del': lib/cn_hash_test.c:85:(.text+0x5d0): undefined reference to `cn_del_get_exval' sparc-linux-ld: lib/cn_hash_test.c:90:(.text+0x640): undefined reference to `cn_get_exval' sparc-linux-ld: lib/cn_hash_test.c:95:(.text+0x6cc): undefined reference to `cn_table_empty' sparc-linux-ld: lib/cn_hash_test.o: in function `cn_hash_test_add': lib/cn_hash_test.c:67:(.text+0x7b4): undefined reference to `cn_add_elem' sparc-linux-ld: lib/cn_hash_test.c:72:(.text+0x824): undefined reference to `cn_get_exval' Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for GET_FREE_REGION Depends on [n]: SPARSEMEM [=n] Selected by [y]: - RESOURCE_KUNIT_TEST [=y] && RUNTIME_TESTING_MENU [=y] && KUNIT [=y] vim +140 lib/cn_hash_test.c 31 32 static void cn_display_htable(struct kunit *test, int len) 33 { 34 int i, err; 35 36 cn_hash_init(test); 37 38 pr_debug("\n"); 39 pr_debug("Displaying hash table:\n"); 40 41 for (i = 0; i < len; i++) { > 42 err = cn_display_hlist(adata[i].pid, len, &adata[i].key, 43 key_display); 44 key_display[adata[i].key] = 1; 45 KUNIT_EXPECT_EQ(test, err, 0); 46 } 47 } 48 49 static void cn_hash_test_add(struct kunit *test) 50 { 51 int err, i; 52 int exit_val; 53 54 adata[0].pid = 1; 55 adata[0].exit_val = 45; 56 57 adata[1].pid = 2; 58 adata[1].exit_val = 13; 59 60 adata[2].pid = 1024; 61 adata[2].exit_val = 16; 62 63 adata[3].pid = 1023; 64 adata[3].exit_val = 71; 65 66 for (i = 0; i < ARRAY_SIZE(adata); i++) { 67 err = cn_add_elem(adata[i].exit_val, adata[i].pid); 68 KUNIT_EXPECT_EQ_MSG(test, 0, err, 69 "Adding pid %d returned err %d", 70 adata[i].pid, err); 71 72 exit_val = cn_get_exval(adata[i].pid); 73 KUNIT_EXPECT_EQ(test, adata[i].exit_val, exit_val); 74 } 75 76 cn_display_htable(test, ARRAY_SIZE(adata)); 77 } 78 79 static void cn_hash_test_del(struct kunit *test) 80 { 81 int i, err; 82 int exit_val; 83 84 for (i = 0; i < ARRAY_SIZE(adata); i++) { 85 err = cn_del_get_exval(adata[i].pid); 86 KUNIT_EXPECT_GT_MSG(test, err, 0, 87 "Deleting pid %d returned err %d", 88 adata[i].pid, err); 89 90 exit_val = cn_get_exval(adata[i].pid); 91 KUNIT_EXPECT_EQ(test, -EINVAL, exit_val); 92 } 93 94 cn_display_htable(test, ARRAY_SIZE(adata)); 95 KUNIT_EXPECT_TRUE(test, cn_table_empty()); 96 } 97 98 static void cn_hash_test_del_get_exval(struct kunit *test) 99 { 100 int i, exval; 101 102 for (i = 0; i < ARRAY_SIZE(adata); i++) { 103 exval = cn_del_get_exval(adata[i].pid); 104 KUNIT_EXPECT_EQ(test, adata[i].exit_val, exval); 105 106 cn_display_htable(test, ARRAY_SIZE(adata)); 107 } 108 109 KUNIT_EXPECT_TRUE(test, cn_table_empty()); 110 } 111 static void cn_hash_test_dup_add(struct kunit *test) 112 { 113 int err, exit_val; 114 115 adata[0].pid = 10; 116 adata[0].exit_val = 21; 117 > 118 err = cn_add_elem(adata[0].exit_val, adata[0].pid); 119 KUNIT_EXPECT_EQ(test, 0, err); 120 > 121 exit_val = cn_get_exval(adata[0].pid); 122 KUNIT_EXPECT_EQ(test, 21, exit_val); 123 124 adata[1].pid = 10; 125 adata[1].exit_val = 12; 126 > 127 err = cn_add_elem(adata[1].exit_val, adata[1].pid); 128 KUNIT_EXPECT_EQ(test, -EEXIST, err); 129 130 exit_val = cn_get_exval(adata[1].pid); 131 KUNIT_EXPECT_EQ(test, 21, exit_val); 132 133 cn_display_htable(test, 1); 134 } 135 136 static void cn_hash_test_dup_del(struct kunit *test) 137 { 138 int err; 139 > 140 err = cn_del_get_exval(adata[0].pid); 141 KUNIT_EXPECT_EQ(test, adata[0].exit_val, err); 142 > 143 err = cn_del_get_exval(adata[0].pid); 144 KUNIT_EXPECT_EQ(test, -EINVAL, err); 145 > 146 KUNIT_EXPECT_TRUE(test, cn_table_empty()); 147 } 148 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki