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-Wca...
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/9c10c0713155955bf1170eea3904cfcfb...
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 <lkp(a)intel.com>
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@lists.01.org