kernel test robot reported some osnoise functions with "no previous
prototype."
Fix these warnings by making local functions static, and by adding:
 void osnoise_trace_irq_entry(int id);
 void osnoise_trace_irq_exit(int id, const char *desc);
to include/linux/trace.h.
Link: https://lkml.kernel.org/r/e40d3cb4be8bde921f4b40fa6a095cf85ab807bd.1624872608.git.bristot@redhat.com
Fixes: bce29ac9ce ("trace: Add osnoise tracer")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
		
	
			
		
			
				
	
	
		
			235 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <asm/trace/irq_vectors.h>
 | |
| #include <linux/trace.h>
 | |
| 
 | |
| #if defined(CONFIG_OSNOISE_TRACER) && defined(CONFIG_X86_LOCAL_APIC)
 | |
| /*
 | |
|  * trace_intel_irq_entry - record intel specific IRQ entry
 | |
|  */
 | |
| static void trace_intel_irq_entry(void *data, int vector)
 | |
| {
 | |
| 	osnoise_trace_irq_entry(vector);
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * trace_intel_irq_exit - record intel specific IRQ exit
 | |
|  */
 | |
| static void trace_intel_irq_exit(void *data, int vector)
 | |
| {
 | |
| 	char *vector_desc = (char *) data;
 | |
| 
 | |
| 	osnoise_trace_irq_exit(vector, vector_desc);
 | |
| }
 | |
| 
 | |
| /*
 | |
|  * register_intel_irq_tp - Register intel specific IRQ entry tracepoints
 | |
|  */
 | |
| int osnoise_arch_register(void)
 | |
| {
 | |
| 	int ret;
 | |
| 
 | |
| 	ret = register_trace_local_timer_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_err;
 | |
| 
 | |
| 	ret = register_trace_local_timer_exit(trace_intel_irq_exit, "local_timer");
 | |
| 	if (ret)
 | |
| 		goto out_timer_entry;
 | |
| 
 | |
| #ifdef CONFIG_X86_THERMAL_VECTOR
 | |
| 	ret = register_trace_thermal_apic_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_timer_exit;
 | |
| 
 | |
| 	ret = register_trace_thermal_apic_exit(trace_intel_irq_exit, "thermal_apic");
 | |
| 	if (ret)
 | |
| 		goto out_thermal_entry;
 | |
| #endif /* CONFIG_X86_THERMAL_VECTOR */
 | |
| 
 | |
| #ifdef CONFIG_X86_MCE_AMD
 | |
| 	ret = register_trace_deferred_error_apic_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_thermal_exit;
 | |
| 
 | |
| 	ret = register_trace_deferred_error_apic_exit(trace_intel_irq_exit, "deferred_error");
 | |
| 	if (ret)
 | |
| 		goto out_deferred_entry;
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_X86_MCE_THRESHOLD
 | |
| 	ret = register_trace_threshold_apic_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_deferred_exit;
 | |
| 
 | |
| 	ret = register_trace_threshold_apic_exit(trace_intel_irq_exit, "threshold_apic");
 | |
| 	if (ret)
 | |
| 		goto out_threshold_entry;
 | |
| #endif /* CONFIG_X86_MCE_THRESHOLD */
 | |
| 
 | |
| #ifdef CONFIG_SMP
 | |
| 	ret = register_trace_call_function_single_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_threshold_exit;
 | |
| 
 | |
| 	ret = register_trace_call_function_single_exit(trace_intel_irq_exit,
 | |
| 						       "call_function_single");
 | |
| 	if (ret)
 | |
| 		goto out_call_function_single_entry;
 | |
| 
 | |
| 	ret = register_trace_call_function_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_call_function_single_exit;
 | |
| 
 | |
| 	ret = register_trace_call_function_exit(trace_intel_irq_exit, "call_function");
 | |
| 	if (ret)
 | |
| 		goto out_call_function_entry;
 | |
| 
 | |
| 	ret = register_trace_reschedule_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_call_function_exit;
 | |
| 
 | |
| 	ret = register_trace_reschedule_exit(trace_intel_irq_exit, "reschedule");
 | |
| 	if (ret)
 | |
| 		goto out_reschedule_entry;
 | |
| #endif /* CONFIG_SMP */
 | |
| 
 | |
| #ifdef CONFIG_IRQ_WORK
 | |
| 	ret = register_trace_irq_work_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_reschedule_exit;
 | |
| 
 | |
| 	ret = register_trace_irq_work_exit(trace_intel_irq_exit, "irq_work");
 | |
| 	if (ret)
 | |
| 		goto out_irq_work_entry;
 | |
| #endif
 | |
| 
 | |
| 	ret = register_trace_x86_platform_ipi_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_irq_work_exit;
 | |
| 
 | |
| 	ret = register_trace_x86_platform_ipi_exit(trace_intel_irq_exit, "x86_platform_ipi");
 | |
| 	if (ret)
 | |
| 		goto out_x86_ipi_entry;
 | |
| 
 | |
| 	ret = register_trace_error_apic_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_x86_ipi_exit;
 | |
| 
 | |
| 	ret = register_trace_error_apic_exit(trace_intel_irq_exit, "error_apic");
 | |
| 	if (ret)
 | |
| 		goto out_error_apic_entry;
 | |
| 
 | |
| 	ret = register_trace_spurious_apic_entry(trace_intel_irq_entry, NULL);
 | |
| 	if (ret)
 | |
| 		goto out_error_apic_exit;
 | |
| 
 | |
| 	ret = register_trace_spurious_apic_exit(trace_intel_irq_exit, "spurious_apic");
 | |
| 	if (ret)
 | |
| 		goto out_spurious_apic_entry;
 | |
| 
 | |
| 	return 0;
 | |
| 
 | |
| out_spurious_apic_entry:
 | |
| 	unregister_trace_spurious_apic_entry(trace_intel_irq_entry, NULL);
 | |
| out_error_apic_exit:
 | |
| 	unregister_trace_error_apic_exit(trace_intel_irq_exit, "error_apic");
 | |
| out_error_apic_entry:
 | |
| 	unregister_trace_error_apic_entry(trace_intel_irq_entry, NULL);
 | |
| out_x86_ipi_exit:
 | |
| 	unregister_trace_x86_platform_ipi_exit(trace_intel_irq_exit, "x86_platform_ipi");
 | |
| out_x86_ipi_entry:
 | |
| 	unregister_trace_x86_platform_ipi_entry(trace_intel_irq_entry, NULL);
 | |
| out_irq_work_exit:
 | |
| 
 | |
| #ifdef CONFIG_IRQ_WORK
 | |
| 	unregister_trace_irq_work_exit(trace_intel_irq_exit, "irq_work");
 | |
| out_irq_work_entry:
 | |
| 	unregister_trace_irq_work_entry(trace_intel_irq_entry, NULL);
 | |
| out_reschedule_exit:
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_SMP
 | |
| 	unregister_trace_reschedule_exit(trace_intel_irq_exit, "reschedule");
 | |
| out_reschedule_entry:
 | |
| 	unregister_trace_reschedule_entry(trace_intel_irq_entry, NULL);
 | |
| out_call_function_exit:
 | |
| 	unregister_trace_call_function_exit(trace_intel_irq_exit, "call_function");
 | |
| out_call_function_entry:
 | |
| 	unregister_trace_call_function_entry(trace_intel_irq_entry, NULL);
 | |
| out_call_function_single_exit:
 | |
| 	unregister_trace_call_function_single_exit(trace_intel_irq_exit, "call_function_single");
 | |
| out_call_function_single_entry:
 | |
| 	unregister_trace_call_function_single_entry(trace_intel_irq_entry, NULL);
 | |
| out_threshold_exit:
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_X86_MCE_THRESHOLD
 | |
| 	unregister_trace_threshold_apic_exit(trace_intel_irq_exit, "threshold_apic");
 | |
| out_threshold_entry:
 | |
| 	unregister_trace_threshold_apic_entry(trace_intel_irq_entry, NULL);
 | |
| out_deferred_exit:
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_X86_MCE_AMD
 | |
| 	unregister_trace_deferred_error_apic_exit(trace_intel_irq_exit, "deferred_error");
 | |
| out_deferred_entry:
 | |
| 	unregister_trace_deferred_error_apic_entry(trace_intel_irq_entry, NULL);
 | |
| out_thermal_exit:
 | |
| #endif /* CONFIG_X86_MCE_AMD */
 | |
| 
 | |
| #ifdef CONFIG_X86_THERMAL_VECTOR
 | |
| 	unregister_trace_thermal_apic_exit(trace_intel_irq_exit, "thermal_apic");
 | |
| out_thermal_entry:
 | |
| 	unregister_trace_thermal_apic_entry(trace_intel_irq_entry, NULL);
 | |
| out_timer_exit:
 | |
| #endif /* CONFIG_X86_THERMAL_VECTOR */
 | |
| 
 | |
| 	unregister_trace_local_timer_exit(trace_intel_irq_exit, "local_timer");
 | |
| out_timer_entry:
 | |
| 	unregister_trace_local_timer_entry(trace_intel_irq_entry, NULL);
 | |
| out_err:
 | |
| 	return -EINVAL;
 | |
| }
 | |
| 
 | |
| void osnoise_arch_unregister(void)
 | |
| {
 | |
| 	unregister_trace_spurious_apic_exit(trace_intel_irq_exit, "spurious_apic");
 | |
| 	unregister_trace_spurious_apic_entry(trace_intel_irq_entry, NULL);
 | |
| 	unregister_trace_error_apic_exit(trace_intel_irq_exit, "error_apic");
 | |
| 	unregister_trace_error_apic_entry(trace_intel_irq_entry, NULL);
 | |
| 	unregister_trace_x86_platform_ipi_exit(trace_intel_irq_exit, "x86_platform_ipi");
 | |
| 	unregister_trace_x86_platform_ipi_entry(trace_intel_irq_entry, NULL);
 | |
| 
 | |
| #ifdef CONFIG_IRQ_WORK
 | |
| 	unregister_trace_irq_work_exit(trace_intel_irq_exit, "irq_work");
 | |
| 	unregister_trace_irq_work_entry(trace_intel_irq_entry, NULL);
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_SMP
 | |
| 	unregister_trace_reschedule_exit(trace_intel_irq_exit, "reschedule");
 | |
| 	unregister_trace_reschedule_entry(trace_intel_irq_entry, NULL);
 | |
| 	unregister_trace_call_function_exit(trace_intel_irq_exit, "call_function");
 | |
| 	unregister_trace_call_function_entry(trace_intel_irq_entry, NULL);
 | |
| 	unregister_trace_call_function_single_exit(trace_intel_irq_exit, "call_function_single");
 | |
| 	unregister_trace_call_function_single_entry(trace_intel_irq_entry, NULL);
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_X86_MCE_THRESHOLD
 | |
| 	unregister_trace_threshold_apic_exit(trace_intel_irq_exit, "threshold_apic");
 | |
| 	unregister_trace_threshold_apic_entry(trace_intel_irq_entry, NULL);
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_X86_MCE_AMD
 | |
| 	unregister_trace_deferred_error_apic_exit(trace_intel_irq_exit, "deferred_error");
 | |
| 	unregister_trace_deferred_error_apic_entry(trace_intel_irq_entry, NULL);
 | |
| #endif
 | |
| 
 | |
| #ifdef CONFIG_X86_THERMAL_VECTOR
 | |
| 	unregister_trace_thermal_apic_exit(trace_intel_irq_exit, "thermal_apic");
 | |
| 	unregister_trace_thermal_apic_entry(trace_intel_irq_entry, NULL);
 | |
| #endif /* CONFIG_X86_THERMAL_VECTOR */
 | |
| 
 | |
| 	unregister_trace_local_timer_exit(trace_intel_irq_exit, "local_timer");
 | |
| 	unregister_trace_local_timer_entry(trace_intel_irq_entry, NULL);
 | |
| }
 | |
| #endif /* CONFIG_OSNOISE_TRAECR && CONFIG_X86_LOCAL_APIC */
 |