Skip to contentSkip to conversation

kernel/trace/fgraph.c:1317 register_ftrace_graph() warn: inconsistent returns '&ftrace_lock'.

DISCUSSION kernel test robot 1 participant 1 message Oct 21, 2024

lore
Share & tools
lore

kernel test robot

author build bot
#0 lore raw

BCC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Steven Rostedt <[email protected]>

Hi Steven,

First bad commit (maybe != root cause):

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   42f7652d3eb527d03665b09edac47f85fb600924
commit: 2c02f7375e658ae93d57a31a66f91b62754ef8f1 fgraph: Use CPU hotplug mechanism to initialize idle shadow stacks
date:   3 days ago

:::::: branch date: 19 hours ago
:::::: commit date: 3 days ago
config: x86_64-randconfig-161-20241020 (https://download.01.org/0day-ci/archive/20241022/[email protected]/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

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 <[email protected]>
| Reported-by: Dan Carpenter <[email protected]>
| Closes: https://lore.kernel.org/r/[email protected]/

smatch warnings:
kernel/trace/fgraph.c:1317 register_ftrace_graph() warn: inconsistent returns '&ftrace_lock'.

vim +1317 kernel/trace/fgraph.c

2c02f7375e658ae Steven Rostedt            2024-10-18  1246  
688f7089d8851b1 Steven Rostedt (VMware    2018-11-15  1247) int register_ftrace_graph(struct fgraph_ops *gops)
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1248) {
2c02f7375e658ae Steven Rostedt            2024-10-18  1249  	static bool fgraph_initialized;
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1250) 	int command = 0;
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1251) 	int ret = 0;
6d4786592ac88aa Masami Hiramatsu (Google  2024-06-03  1252) 	int i = -1;
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1253) 
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1254) 	mutex_lock(&ftrace_lock);
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1255) 
2c02f7375e658ae Steven Rostedt            2024-10-18  1256  	if (!fgraph_initialized) {
2c02f7375e658ae Steven Rostedt            2024-10-18  1257  		ret = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "fgraph_idle_init",
2c02f7375e658ae Steven Rostedt            2024-10-18  1258  					fgraph_cpu_init, NULL);
2c02f7375e658ae Steven Rostedt            2024-10-18  1259  		if (ret < 0) {
2c02f7375e658ae Steven Rostedt            2024-10-18  1260  			pr_warn("fgraph: Error to init cpu hotplug support\n");
2c02f7375e658ae Steven Rostedt            2024-10-18  1261  			return ret;
2c02f7375e658ae Steven Rostedt            2024-10-18  1262  		}
2c02f7375e658ae Steven Rostedt            2024-10-18  1263  		fgraph_initialized = true;
2c02f7375e658ae Steven Rostedt            2024-10-18  1264  		ret = 0;
2c02f7375e658ae Steven Rostedt            2024-10-18  1265  	}
2c02f7375e658ae Steven Rostedt            2024-10-18  1266  
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1267) 	if (!fgraph_array[0]) {
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1268) 		/* The array must always have real data on it */
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1269) 		for (i = 0; i < FGRAPH_ARRAY_SIZE; i++)
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1270) 			fgraph_array[i] = &fgraph_stub;
6d4786592ac88aa Masami Hiramatsu (Google  2024-06-03  1271) 		fgraph_lru_init();
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1272) 	}
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1273) 
6d4786592ac88aa Masami Hiramatsu (Google  2024-06-03  1274) 	i = fgraph_lru_alloc_index();
6d4786592ac88aa Masami Hiramatsu (Google  2024-06-03  1275) 	if (i < 0 || WARN_ON_ONCE(fgraph_array[i] != &fgraph_stub)) {
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1276) 		ret = -ENOSPC;
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1277) 		goto out;
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1278) 	}
7aa1eaef9f4282c Steven Rostedt (VMware    2024-06-03  1279) 	gops->idx = i;
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1280) 
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1281) 	ftrace_graph_active++;
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1282) 
cc60ee813b50334 Steven Rostedt (Google    2024-06-03  1283) 	if (ftrace_graph_active == 2)
cc60ee813b50334 Steven Rostedt (Google    2024-06-03  1284) 		ftrace_graph_disable_direct(true);
cc60ee813b50334 Steven Rostedt (Google    2024-06-03  1285) 
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1286) 	if (ftrace_graph_active == 1) {
a069a22f391019e Masami Hiramatsu (Google  2024-08-18  1287) 		ftrace_graph_enable_direct(false, gops);
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1288) 		register_pm_notifier(&ftrace_suspend_notifier);
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1289) 		ret = start_graph_tracing();
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1290) 		if (ret)
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1291) 			goto error;
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1292) 		/*
2fbb549983763b2 Steven Rostedt (VMware    2024-06-03  1293) 		 * Some archs just test to see if these are not
2fbb549983763b2 Steven Rostedt (VMware    2024-06-03  1294) 		 * the default function
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1295) 		 */
2fbb549983763b2 Steven Rostedt (VMware    2024-06-03  1296) 		ftrace_graph_return = return_run;
2fbb549983763b2 Steven Rostedt (VMware    2024-06-03  1297) 		ftrace_graph_entry = entry_run;
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1298) 		command = FTRACE_START_FUNC_RET;
4497412a1f7b5d9 Steven Rostedt (VMware    2024-06-03  1299) 	} else {
4497412a1f7b5d9 Steven Rostedt (VMware    2024-06-03  1300) 		init_task_vars(gops->idx);
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1301) 	}
df3ec5da6a1e7f6 Steven Rostedt (Google    2024-06-03  1302) 	/* Always save the function, and reset at unregistering */
df3ec5da6a1e7f6 Steven Rostedt (Google    2024-06-03  1303) 	gops->saved_func = gops->entryfunc;
df3ec5da6a1e7f6 Steven Rostedt (Google    2024-06-03  1304) 
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1305) 	ret = ftrace_startup_subops(&graph_ops, &gops->ops, command);
a069a22f391019e Masami Hiramatsu (Google  2024-08-18  1306) 	if (!ret)
a069a22f391019e Masami Hiramatsu (Google  2024-08-18  1307) 		fgraph_array[i] = gops;
a069a22f391019e Masami Hiramatsu (Google  2024-08-18  1308) 
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1309) error:
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1310) 	if (ret) {
c132be2c4fcc115 Steven Rostedt (VMware    2024-06-03  1311) 		ftrace_graph_active--;
df3ec5da6a1e7f6 Steven Rostedt (Google    2024-06-03  1312) 		gops->saved_func = NULL;
6d4786592ac88aa Masami Hiramatsu (Google  2024-06-03  1313) 		fgraph_lru_release_index(i);
518d6804a865772 Steven Rostedt (VMware    2024-06-03  1314) 	}
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1315) out:
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1316) 	mutex_unlock(&ftrace_lock);
e73e679f656e678 Steven Rostedt (VMware    2018-11-15 @1317) 	return ret;
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1318) }
e73e679f656e678 Steven Rostedt (VMware    2018-11-15  1319) 

:::::: The code at line 1317 was first introduced by commit
:::::: e73e679f656e678b0e7f8961094201f3544f4541 fgraph: Move function graph specific code into fgraph.c

:::::: TO: Steven Rostedt (VMware) <[email protected]> :::::: CC: Steven Rostedt (VMware) <[email protected]>

Signature · 2 lines
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki