diff options
Diffstat (limited to 'kernel/trace/ftrace.c')
| -rw-r--r-- | kernel/trace/ftrace.c | 41 | 
1 files changed, 16 insertions, 25 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 8d83bcf9ef69..caf9cbf35816 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@ -192,17 +192,6 @@ static void ftrace_pid_func(unsigned long ip, unsigned long parent_ip,  	op->saved_func(ip, parent_ip, op, regs);  } -/** - * clear_ftrace_function - reset the ftrace function - * - * This NULLs the ftrace function and in essence stops - * tracing.  There may be lag - */ -void clear_ftrace_function(void) -{ -	ftrace_trace_function = ftrace_stub; -} -  static void ftrace_sync(struct work_struct *work)  {  	/* @@ -728,7 +717,7 @@ static int ftrace_profile_init_cpu(int cpu)  	 */  	size = FTRACE_PROFILE_HASH_SIZE; -	stat->hash = kzalloc(sizeof(struct hlist_head) * size, GFP_KERNEL); +	stat->hash = kcalloc(size, sizeof(struct hlist_head), GFP_KERNEL);  	if (!stat->hash)  		return -ENOMEM; @@ -6689,7 +6678,7 @@ void ftrace_kill(void)  {  	ftrace_disabled = 1;  	ftrace_enabled = 0; -	clear_ftrace_function(); +	ftrace_trace_function = ftrace_stub;  }  /** @@ -6830,9 +6819,10 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)  	struct task_struct *g, *t;  	for (i = 0; i < FTRACE_RETSTACK_ALLOC_SIZE; i++) { -		ret_stack_list[i] = kmalloc(FTRACE_RETFUNC_DEPTH -					* sizeof(struct ftrace_ret_stack), -					GFP_KERNEL); +		ret_stack_list[i] = +			kmalloc_array(FTRACE_RETFUNC_DEPTH, +				      sizeof(struct ftrace_ret_stack), +				      GFP_KERNEL);  		if (!ret_stack_list[i]) {  			start = 0;  			end = i; @@ -6904,9 +6894,9 @@ static int start_graph_tracing(void)  	struct ftrace_ret_stack **ret_stack_list;  	int ret, cpu; -	ret_stack_list = kmalloc(FTRACE_RETSTACK_ALLOC_SIZE * -				sizeof(struct ftrace_ret_stack *), -				GFP_KERNEL); +	ret_stack_list = kmalloc_array(FTRACE_RETSTACK_ALLOC_SIZE, +				       sizeof(struct ftrace_ret_stack *), +				       GFP_KERNEL);  	if (!ret_stack_list)  		return -ENOMEM; @@ -7088,9 +7078,10 @@ void ftrace_graph_init_idle_task(struct task_struct *t, int cpu)  		ret_stack = per_cpu(idle_ret_stack, cpu);  		if (!ret_stack) { -			ret_stack = kmalloc(FTRACE_RETFUNC_DEPTH -					    * sizeof(struct ftrace_ret_stack), -					    GFP_KERNEL); +			ret_stack = +				kmalloc_array(FTRACE_RETFUNC_DEPTH, +					      sizeof(struct ftrace_ret_stack), +					      GFP_KERNEL);  			if (!ret_stack)  				return;  			per_cpu(idle_ret_stack, cpu) = ret_stack; @@ -7109,9 +7100,9 @@ void ftrace_graph_init_task(struct task_struct *t)  	if (ftrace_graph_active) {  		struct ftrace_ret_stack *ret_stack; -		ret_stack = kmalloc(FTRACE_RETFUNC_DEPTH -				* sizeof(struct ftrace_ret_stack), -				GFP_KERNEL); +		ret_stack = kmalloc_array(FTRACE_RETFUNC_DEPTH, +					  sizeof(struct ftrace_ret_stack), +					  GFP_KERNEL);  		if (!ret_stack)  			return;  		graph_init_task(t, ret_stack);  |