Hi "Gustavo, Thank you for the patch! Yet something to improve: [auto build test ERROR on tip/perf/core] [also build test ERROR on v5.15] [cannot apply to rostedt-trace/for-next linux/master linus/master next-20211108] [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/Gustavo-A-R-Silva/ftrace-Fix-Wcast-function-type-warnings-on-powerpc64/20211005-133606 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 41100833cdd8b1bef363b81a6482d74711c116ad config: powerpc64-allmodconfig (attached as .config) compiler: powerpc64-linux-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/9c10c0713155955bf1170eea3904cfcfb6d2d832 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Gustavo-A-R-Silva/ftrace-Fix-Wcast-function-type-warnings-on-powerpc64/20211005-133606 git checkout 9c10c0713155955bf1170eea3904cfcfb6d2d832 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): kernel/trace/trace.c: In function 'trace_check_vprintf': kernel/trace/trace.c:3827:17: warning: function 'trace_check_vprintf' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 3827 | trace_seq_vprintf(&iter->seq, iter->fmt, ap); | ^~~~~~~~~~~~~~~~~ kernel/trace/trace.c:3882:17: warning: function 'trace_check_vprintf' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 3882 | trace_seq_vprintf(&iter->seq, p, ap); | ^~~~~~~~~~~~~~~~~ In file included from kernel/trace/trace.c:8605: kernel/trace/trace_selftest.c: At top level: kernel/trace/trace_selftest.c:152:35: error: initialization of 'void (*)(long unsigned int, long unsigned int)' from incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types] 152 | .func = trace_selftest_test_probe1_func, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace_selftest.c:152:35: note: (near initialization for 'test_probe1.func') kernel/trace/trace_selftest.c:156:35: error: initialization of 'void (*)(long unsigned int, long unsigned int)' from incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types] 156 | .func = trace_selftest_test_probe2_func, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace_selftest.c:156:35: note: (near initialization for 'test_probe2.func') kernel/trace/trace_selftest.c:160:35: error: initialization of 'void (*)(long unsigned int, long unsigned int)' from incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types] 160 | .func = trace_selftest_test_probe3_func, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace_selftest.c:160:35: note: (near initialization for 'test_probe3.func') kernel/trace/trace_selftest.c: In function 'trace_selftest_ops': >> kernel/trace/trace_selftest.c:219:43: error: passing argument 2 of 'ftrace_init_array_ops' from incompatible pointer type [-Werror=incompatible-pointer-types] 219 | ftrace_init_array_ops(tr, trace_selftest_test_global_func); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | | void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *) In file included from kernel/trace/trace.c:53: kernel/trace/trace.h:981:66: note: expected 'ftrace_func_t' {aka 'void (*)(long unsigned int, long unsigned int)'} but argument is of type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' 981 | void ftrace_init_array_ops(struct trace_array *tr, ftrace_func_t func); | ~~~~~~~~~~~~~~^~~~ In file included from kernel/trace/trace.c:8605: >> kernel/trace/trace_selftest.c:256:23: error: assignment to 'ftrace_func_t' {aka 'void (*)(long unsigned int, long unsigned int)'} from incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types] 256 | dyn_ops->func = trace_selftest_test_dyn_func; | ^ kernel/trace/trace_selftest.c: At top level: kernel/trace/trace_selftest.c:447:35: error: initialization of 'void (*)(long unsigned int, long unsigned int)' from incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types] 447 | .func = trace_selftest_test_recursion_func, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace_selftest.c:447:35: note: (near initialization for 'test_rec_probe.func') kernel/trace/trace_selftest.c:452:35: error: initialization of 'void (*)(long unsigned int, long unsigned int)' from incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types] 452 | .func = trace_selftest_test_recursion_safe_func, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace_selftest.c:452:35: note: (near initialization for 'test_recsafe_probe.func') kernel/trace/trace_selftest.c:562:27: error: initialization of 'void (*)(long unsigned int, long unsigned int)' from incompatible pointer type 'void (*)(long unsigned int, long unsigned int, struct ftrace_ops *, struct ftrace_regs *)' [-Werror=incompatible-pointer-types] 562 | .func = trace_selftest_test_regs_func, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/trace/trace_selftest.c:562:27: note: (near initialization for 'test_regs_probe.func') cc1: some warnings being treated as errors vim +/ftrace_init_array_ops +219 kernel/trace/trace_selftest.c 95950c2ecb3131 Steven Rostedt 2011-05-06 181 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 182) static int trace_selftest_ops(struct trace_array *tr, int cnt) 95950c2ecb3131 Steven Rostedt 2011-05-06 183 { 95950c2ecb3131 Steven Rostedt 2011-05-06 184 int save_ftrace_enabled = ftrace_enabled; 95950c2ecb3131 Steven Rostedt 2011-05-06 185 struct ftrace_ops *dyn_ops; 95950c2ecb3131 Steven Rostedt 2011-05-06 186 char *func1_name; 95950c2ecb3131 Steven Rostedt 2011-05-06 187 char *func2_name; 95950c2ecb3131 Steven Rostedt 2011-05-06 188 int len1; 95950c2ecb3131 Steven Rostedt 2011-05-06 189 int len2; 95950c2ecb3131 Steven Rostedt 2011-05-06 190 int ret = -1; 95950c2ecb3131 Steven Rostedt 2011-05-06 191 95950c2ecb3131 Steven Rostedt 2011-05-06 192 printk(KERN_CONT "PASSED\n"); 95950c2ecb3131 Steven Rostedt 2011-05-06 193 pr_info("Testing dynamic ftrace ops #%d: ", cnt); 95950c2ecb3131 Steven Rostedt 2011-05-06 194 95950c2ecb3131 Steven Rostedt 2011-05-06 195 ftrace_enabled = 1; 95950c2ecb3131 Steven Rostedt 2011-05-06 196 reset_counts(); 95950c2ecb3131 Steven Rostedt 2011-05-06 197 95950c2ecb3131 Steven Rostedt 2011-05-06 198 /* Handle PPC64 '.' name */ 95950c2ecb3131 Steven Rostedt 2011-05-06 199 func1_name = "*" __stringify(DYN_FTRACE_TEST_NAME); 95950c2ecb3131 Steven Rostedt 2011-05-06 200 func2_name = "*" __stringify(DYN_FTRACE_TEST_NAME2); 95950c2ecb3131 Steven Rostedt 2011-05-06 201 len1 = strlen(func1_name); 95950c2ecb3131 Steven Rostedt 2011-05-06 202 len2 = strlen(func2_name); 95950c2ecb3131 Steven Rostedt 2011-05-06 203 95950c2ecb3131 Steven Rostedt 2011-05-06 204 /* 95950c2ecb3131 Steven Rostedt 2011-05-06 205 * Probe 1 will trace function 1. 95950c2ecb3131 Steven Rostedt 2011-05-06 206 * Probe 2 will trace function 2. 95950c2ecb3131 Steven Rostedt 2011-05-06 207 * Probe 3 will trace functions 1 and 2. 95950c2ecb3131 Steven Rostedt 2011-05-06 208 */ 95950c2ecb3131 Steven Rostedt 2011-05-06 209 ftrace_set_filter(&test_probe1, func1_name, len1, 1); 95950c2ecb3131 Steven Rostedt 2011-05-06 210 ftrace_set_filter(&test_probe2, func2_name, len2, 1); 95950c2ecb3131 Steven Rostedt 2011-05-06 211 ftrace_set_filter(&test_probe3, func1_name, len1, 1); 95950c2ecb3131 Steven Rostedt 2011-05-06 212 ftrace_set_filter(&test_probe3, func2_name, len2, 0); 95950c2ecb3131 Steven Rostedt 2011-05-06 213 95950c2ecb3131 Steven Rostedt 2011-05-06 214 register_ftrace_function(&test_probe1); 95950c2ecb3131 Steven Rostedt 2011-05-06 215 register_ftrace_function(&test_probe2); 95950c2ecb3131 Steven Rostedt 2011-05-06 216 register_ftrace_function(&test_probe3); 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 217) /* First time we are running with main function */ 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 218) if (cnt > 1) { 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 @219) ftrace_init_array_ops(tr, trace_selftest_test_global_func); 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 220) register_ftrace_function(tr->ops); 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 221) } 95950c2ecb3131 Steven Rostedt 2011-05-06 222 95950c2ecb3131 Steven Rostedt 2011-05-06 223 DYN_FTRACE_TEST_NAME(); 95950c2ecb3131 Steven Rostedt 2011-05-06 224 95950c2ecb3131 Steven Rostedt 2011-05-06 225 print_counts(); 95950c2ecb3131 Steven Rostedt 2011-05-06 226 95950c2ecb3131 Steven Rostedt 2011-05-06 227 if (trace_selftest_test_probe1_cnt != 1) 95950c2ecb3131 Steven Rostedt 2011-05-06 228 goto out; 95950c2ecb3131 Steven Rostedt 2011-05-06 229 if (trace_selftest_test_probe2_cnt != 0) 95950c2ecb3131 Steven Rostedt 2011-05-06 230 goto out; 95950c2ecb3131 Steven Rostedt 2011-05-06 231 if (trace_selftest_test_probe3_cnt != 1) 95950c2ecb3131 Steven Rostedt 2011-05-06 232 goto out; 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 233) if (cnt > 1) { 95950c2ecb3131 Steven Rostedt 2011-05-06 234 if (trace_selftest_test_global_cnt == 0) 95950c2ecb3131 Steven Rostedt 2011-05-06 235 goto out; 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 236) } 95950c2ecb3131 Steven Rostedt 2011-05-06 237 95950c2ecb3131 Steven Rostedt 2011-05-06 238 DYN_FTRACE_TEST_NAME2(); 95950c2ecb3131 Steven Rostedt 2011-05-06 239 95950c2ecb3131 Steven Rostedt 2011-05-06 240 print_counts(); 95950c2ecb3131 Steven Rostedt 2011-05-06 241 95950c2ecb3131 Steven Rostedt 2011-05-06 242 if (trace_selftest_test_probe1_cnt != 1) 95950c2ecb3131 Steven Rostedt 2011-05-06 243 goto out; 95950c2ecb3131 Steven Rostedt 2011-05-06 244 if (trace_selftest_test_probe2_cnt != 1) 95950c2ecb3131 Steven Rostedt 2011-05-06 245 goto out; 95950c2ecb3131 Steven Rostedt 2011-05-06 246 if (trace_selftest_test_probe3_cnt != 2) 95950c2ecb3131 Steven Rostedt 2011-05-06 247 goto out; 95950c2ecb3131 Steven Rostedt 2011-05-06 248 95950c2ecb3131 Steven Rostedt 2011-05-06 249 /* Add a dynamic probe */ 95950c2ecb3131 Steven Rostedt 2011-05-06 250 dyn_ops = kzalloc(sizeof(*dyn_ops), GFP_KERNEL); 95950c2ecb3131 Steven Rostedt 2011-05-06 251 if (!dyn_ops) { 95950c2ecb3131 Steven Rostedt 2011-05-06 252 printk("MEMORY ERROR "); 95950c2ecb3131 Steven Rostedt 2011-05-06 253 goto out; 95950c2ecb3131 Steven Rostedt 2011-05-06 254 } 95950c2ecb3131 Steven Rostedt 2011-05-06 255 95950c2ecb3131 Steven Rostedt 2011-05-06 @256 dyn_ops->func = trace_selftest_test_dyn_func; 95950c2ecb3131 Steven Rostedt 2011-05-06 257 95950c2ecb3131 Steven Rostedt 2011-05-06 258 register_ftrace_function(dyn_ops); 95950c2ecb3131 Steven Rostedt 2011-05-06 259 95950c2ecb3131 Steven Rostedt 2011-05-06 260 trace_selftest_test_global_cnt = 0; 95950c2ecb3131 Steven Rostedt 2011-05-06 261 95950c2ecb3131 Steven Rostedt 2011-05-06 262 DYN_FTRACE_TEST_NAME(); 95950c2ecb3131 Steven Rostedt 2011-05-06 263 95950c2ecb3131 Steven Rostedt 2011-05-06 264 print_counts(); 95950c2ecb3131 Steven Rostedt 2011-05-06 265 95950c2ecb3131 Steven Rostedt 2011-05-06 266 if (trace_selftest_test_probe1_cnt != 2) 95950c2ecb3131 Steven Rostedt 2011-05-06 267 goto out_free; 95950c2ecb3131 Steven Rostedt 2011-05-06 268 if (trace_selftest_test_probe2_cnt != 1) 95950c2ecb3131 Steven Rostedt 2011-05-06 269 goto out_free; 95950c2ecb3131 Steven Rostedt 2011-05-06 270 if (trace_selftest_test_probe3_cnt != 3) 95950c2ecb3131 Steven Rostedt 2011-05-06 271 goto out_free; 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 272) if (cnt > 1) { 95950c2ecb3131 Steven Rostedt 2011-05-06 273 if (trace_selftest_test_global_cnt == 0) 46320a6acc4fb5 Steven Rostedt (VMware 2017-09-01 274) goto out_free; 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 275) } 95950c2ecb3131 Steven Rostedt 2011-05-06 276 if (trace_selftest_test_dyn_cnt == 0) 95950c2ecb3131 Steven Rostedt 2011-05-06 277 goto out_free; 95950c2ecb3131 Steven Rostedt 2011-05-06 278 95950c2ecb3131 Steven Rostedt 2011-05-06 279 DYN_FTRACE_TEST_NAME2(); 95950c2ecb3131 Steven Rostedt 2011-05-06 280 95950c2ecb3131 Steven Rostedt 2011-05-06 281 print_counts(); 95950c2ecb3131 Steven Rostedt 2011-05-06 282 95950c2ecb3131 Steven Rostedt 2011-05-06 283 if (trace_selftest_test_probe1_cnt != 2) 95950c2ecb3131 Steven Rostedt 2011-05-06 284 goto out_free; 95950c2ecb3131 Steven Rostedt 2011-05-06 285 if (trace_selftest_test_probe2_cnt != 2) 95950c2ecb3131 Steven Rostedt 2011-05-06 286 goto out_free; 95950c2ecb3131 Steven Rostedt 2011-05-06 287 if (trace_selftest_test_probe3_cnt != 4) 95950c2ecb3131 Steven Rostedt 2011-05-06 288 goto out_free; 95950c2ecb3131 Steven Rostedt 2011-05-06 289 95950c2ecb3131 Steven Rostedt 2011-05-06 290 ret = 0; 95950c2ecb3131 Steven Rostedt 2011-05-06 291 out_free: 95950c2ecb3131 Steven Rostedt 2011-05-06 292 unregister_ftrace_function(dyn_ops); 95950c2ecb3131 Steven Rostedt 2011-05-06 293 kfree(dyn_ops); 95950c2ecb3131 Steven Rostedt 2011-05-06 294 95950c2ecb3131 Steven Rostedt 2011-05-06 295 out: 95950c2ecb3131 Steven Rostedt 2011-05-06 296 /* Purposely unregister in the same order */ 95950c2ecb3131 Steven Rostedt 2011-05-06 297 unregister_ftrace_function(&test_probe1); 95950c2ecb3131 Steven Rostedt 2011-05-06 298 unregister_ftrace_function(&test_probe2); 95950c2ecb3131 Steven Rostedt 2011-05-06 299 unregister_ftrace_function(&test_probe3); 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 300) if (cnt > 1) 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 301) unregister_ftrace_function(tr->ops); 4104d326b670c2 Steven Rostedt (Red Hat 2014-01-10 302) ftrace_reset_array_ops(tr); 95950c2ecb3131 Steven Rostedt 2011-05-06 303 95950c2ecb3131 Steven Rostedt 2011-05-06 304 /* Make sure everything is off */ 95950c2ecb3131 Steven Rostedt 2011-05-06 305 reset_counts(); 95950c2ecb3131 Steven Rostedt 2011-05-06 306 DYN_FTRACE_TEST_NAME(); 95950c2ecb3131 Steven Rostedt 2011-05-06 307 DYN_FTRACE_TEST_NAME(); 95950c2ecb3131 Steven Rostedt 2011-05-06 308 95950c2ecb3131 Steven Rostedt 2011-05-06 309 if (trace_selftest_test_probe1_cnt || 95950c2ecb3131 Steven Rostedt 2011-05-06 310 trace_selftest_test_probe2_cnt || 95950c2ecb3131 Steven Rostedt 2011-05-06 311 trace_selftest_test_probe3_cnt || 95950c2ecb3131 Steven Rostedt 2011-05-06 312 trace_selftest_test_global_cnt || 95950c2ecb3131 Steven Rostedt 2011-05-06 313 trace_selftest_test_dyn_cnt) 95950c2ecb3131 Steven Rostedt 2011-05-06 314 ret = -1; 95950c2ecb3131 Steven Rostedt 2011-05-06 315 95950c2ecb3131 Steven Rostedt 2011-05-06 316 ftrace_enabled = save_ftrace_enabled; 95950c2ecb3131 Steven Rostedt 2011-05-06 317 95950c2ecb3131 Steven Rostedt 2011-05-06 318 return ret; 95950c2ecb3131 Steven Rostedt 2011-05-06 319 } 95950c2ecb3131 Steven Rostedt 2011-05-06 320 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org