mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ftrace: fix building with SYSCTL=n but DYNAMIC_FTRACE=y
One can enable dyanmic tracing but disable sysctls.
When this is doen we get the compile kernel warning:
  CC      kernel/trace/ftrace.o
kernel/trace/ftrace.c:3086:13: warning: ‘ftrace_shutdown_sysctl’ defined
but not used [-Wunused-function]
 3086 | static void ftrace_shutdown_sysctl(void)
      |             ^~~~~~~~~~~~~~~~~~~~~~
kernel/trace/ftrace.c:3068:13: warning: ‘ftrace_startup_sysctl’ defined
but not used [-Wunused-function]
 3068 | static void ftrace_startup_sysctl(void)
When CONFIG_DYNAMIC_FTRACE=n the ftrace_startup_sysctl() and
routines ftrace_shutdown_sysctl() still compiles, so these
are actually more just used for when SYSCTL=y.
Fix this then by just moving these routines to when sysctls
are enabled.
Fixes: 7cde53da38a3 ("ftrace: move sysctl_ftrace_enabled to ftrace.c")
Reported-by: kernel test robot <lkp@intel.com>
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
			
			
This commit is contained in:
		
							parent
							
								
									5d79fa0d33
								
							
						
					
					
						commit
						f8b7d2b4c1
					
				
					 1 changed files with 34 additions and 37 deletions
				
			
		| 
						 | 
				
			
			@ -3065,40 +3065,6 @@ int ftrace_shutdown(struct ftrace_ops *ops, int command)
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ftrace_startup_sysctl(void)
 | 
			
		||||
{
 | 
			
		||||
	int command;
 | 
			
		||||
 | 
			
		||||
	if (unlikely(ftrace_disabled))
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	/* Force update next time */
 | 
			
		||||
	saved_ftrace_func = NULL;
 | 
			
		||||
	/* ftrace_start_up is true if we want ftrace running */
 | 
			
		||||
	if (ftrace_start_up) {
 | 
			
		||||
		command = FTRACE_UPDATE_CALLS;
 | 
			
		||||
		if (ftrace_graph_active)
 | 
			
		||||
			command |= FTRACE_START_FUNC_RET;
 | 
			
		||||
		ftrace_startup_enable(command);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ftrace_shutdown_sysctl(void)
 | 
			
		||||
{
 | 
			
		||||
	int command;
 | 
			
		||||
 | 
			
		||||
	if (unlikely(ftrace_disabled))
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	/* ftrace_start_up is true if ftrace is running */
 | 
			
		||||
	if (ftrace_start_up) {
 | 
			
		||||
		command = FTRACE_DISABLE_CALLS;
 | 
			
		||||
		if (ftrace_graph_active)
 | 
			
		||||
			command |= FTRACE_STOP_FUNC_RET;
 | 
			
		||||
		ftrace_run_update_code(command);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static u64		ftrace_update_time;
 | 
			
		||||
unsigned long		ftrace_update_tot_cnt;
 | 
			
		||||
unsigned long		ftrace_number_of_pages;
 | 
			
		||||
| 
						 | 
				
			
			@ -7267,9 +7233,6 @@ core_initcall(ftrace_nodyn_init);
 | 
			
		|||
static inline int ftrace_init_dyn_tracefs(struct dentry *d_tracer) { return 0; }
 | 
			
		||||
static inline void ftrace_startup_all(int command) { }
 | 
			
		||||
 | 
			
		||||
# define ftrace_startup_sysctl()	do { } while (0)
 | 
			
		||||
# define ftrace_shutdown_sysctl()	do { } while (0)
 | 
			
		||||
 | 
			
		||||
static void ftrace_update_trampoline(struct ftrace_ops *ops)
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -7910,6 +7873,40 @@ int unregister_ftrace_function(struct ftrace_ops *ops)
 | 
			
		|||
EXPORT_SYMBOL_GPL(unregister_ftrace_function);
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SYSCTL
 | 
			
		||||
static void ftrace_startup_sysctl(void)
 | 
			
		||||
{
 | 
			
		||||
	int command;
 | 
			
		||||
 | 
			
		||||
	if (unlikely(ftrace_disabled))
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	/* Force update next time */
 | 
			
		||||
	saved_ftrace_func = NULL;
 | 
			
		||||
	/* ftrace_start_up is true if we want ftrace running */
 | 
			
		||||
	if (ftrace_start_up) {
 | 
			
		||||
		command = FTRACE_UPDATE_CALLS;
 | 
			
		||||
		if (ftrace_graph_active)
 | 
			
		||||
			command |= FTRACE_START_FUNC_RET;
 | 
			
		||||
		ftrace_startup_enable(command);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void ftrace_shutdown_sysctl(void)
 | 
			
		||||
{
 | 
			
		||||
	int command;
 | 
			
		||||
 | 
			
		||||
	if (unlikely(ftrace_disabled))
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	/* ftrace_start_up is true if ftrace is running */
 | 
			
		||||
	if (ftrace_start_up) {
 | 
			
		||||
		command = FTRACE_DISABLE_CALLS;
 | 
			
		||||
		if (ftrace_graph_active)
 | 
			
		||||
			command |= FTRACE_STOP_FUNC_RET;
 | 
			
		||||
		ftrace_run_update_code(command);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static bool is_permanent_ops_registered(void)
 | 
			
		||||
{
 | 
			
		||||
	struct ftrace_ops *op;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue