mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-03 18:20:25 +02:00 
			
		
		
		
	tracing: Clear trace_state when starting trace
Clear trace_state data structure when starting trace in __synth_event_trace_start() internal function. Currently trace_state is initialized only in the synth_event_trace_start() API, but the trace_state in synth_event_trace() and synth_event_trace_array() are on the stack without initialization. This means those APIs will see wrong parameters and wil skip closing process in __synth_event_trace_end() because trace_state->disabled may be !0. Link: http://lkml.kernel.org/r/158193315899.8868.1781259176894639952.stgit@devnote2 Reviewed-by: Tom Zanussi <zanussi@kernel.org> Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
		
							parent
							
								
									08d9e68642
								
							
						
					
					
						commit
						7ab215f22d
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		| 
						 | 
					@ -1824,6 +1824,8 @@ __synth_event_trace_start(struct trace_event_file *file,
 | 
				
			||||||
	int entry_size, fields_size = 0;
 | 
						int entry_size, fields_size = 0;
 | 
				
			||||||
	int ret = 0;
 | 
						int ret = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						memset(trace_state, '\0', sizeof(*trace_state));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Normal event tracing doesn't get called at all unless the
 | 
						 * Normal event tracing doesn't get called at all unless the
 | 
				
			||||||
	 * ENABLED bit is set (which attaches the probe thus allowing
 | 
						 * ENABLED bit is set (which attaches the probe thus allowing
 | 
				
			||||||
| 
						 | 
					@ -2063,8 +2065,6 @@ int synth_event_trace_start(struct trace_event_file *file,
 | 
				
			||||||
	if (!trace_state)
 | 
						if (!trace_state)
 | 
				
			||||||
		return -EINVAL;
 | 
							return -EINVAL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	memset(trace_state, '\0', sizeof(*trace_state));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	ret = __synth_event_trace_start(file, trace_state);
 | 
						ret = __synth_event_trace_start(file, trace_state);
 | 
				
			||||||
	if (ret == -ENOENT)
 | 
						if (ret == -ENOENT)
 | 
				
			||||||
		ret = 0; /* just disabled, not really an error */
 | 
							ret = 0; /* just disabled, not really an error */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue