with CONFIG_XEN and CONFIG_FTRACE set we get this: arch/x86/xen/trace.c:22: error: ‘__HYPERVISOR_console_io’ undeclared here (not in a function) arch/x86/xen/trace.c:22: error: array index in initializer not of integer type arch/x86/xen/trace.c:22: error: (near initialization for ‘xen_hypercall_names’) arch/x86/xen/trace.c:23: error: ‘__HYPERVISOR_physdev_op_compat’ undeclared here (not in a function) Issue was that the definitions of __HYPERVISOR were not pulled if CONFIG_XEN_PRIVILEGED_GUEST was not set. Reported-by: Randy Dunlap <rdunlap@xenotime.net> Acked-by: Randy Dunlap <rdunlap@xenotime.net> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#include <linux/ftrace.h>
 | 
						|
#include <xen/interface/xen.h>
 | 
						|
 | 
						|
#define N(x)	[__HYPERVISOR_##x] = "("#x")"
 | 
						|
static const char *xen_hypercall_names[] = {
 | 
						|
	N(set_trap_table),
 | 
						|
	N(mmu_update),
 | 
						|
	N(set_gdt),
 | 
						|
	N(stack_switch),
 | 
						|
	N(set_callbacks),
 | 
						|
	N(fpu_taskswitch),
 | 
						|
	N(sched_op_compat),
 | 
						|
	N(dom0_op),
 | 
						|
	N(set_debugreg),
 | 
						|
	N(get_debugreg),
 | 
						|
	N(update_descriptor),
 | 
						|
	N(memory_op),
 | 
						|
	N(multicall),
 | 
						|
	N(update_va_mapping),
 | 
						|
	N(set_timer_op),
 | 
						|
	N(event_channel_op_compat),
 | 
						|
	N(xen_version),
 | 
						|
	N(console_io),
 | 
						|
	N(physdev_op_compat),
 | 
						|
	N(grant_table_op),
 | 
						|
	N(vm_assist),
 | 
						|
	N(update_va_mapping_otherdomain),
 | 
						|
	N(iret),
 | 
						|
	N(vcpu_op),
 | 
						|
	N(set_segment_base),
 | 
						|
	N(mmuext_op),
 | 
						|
	N(acm_op),
 | 
						|
	N(nmi_op),
 | 
						|
	N(sched_op),
 | 
						|
	N(callback_op),
 | 
						|
	N(xenoprof_op),
 | 
						|
	N(event_channel_op),
 | 
						|
	N(physdev_op),
 | 
						|
	N(hvm_op),
 | 
						|
 | 
						|
/* Architecture-specific hypercall definitions. */
 | 
						|
	N(arch_0),
 | 
						|
	N(arch_1),
 | 
						|
	N(arch_2),
 | 
						|
	N(arch_3),
 | 
						|
	N(arch_4),
 | 
						|
	N(arch_5),
 | 
						|
	N(arch_6),
 | 
						|
	N(arch_7),
 | 
						|
};
 | 
						|
#undef N
 | 
						|
 | 
						|
static const char *xen_hypercall_name(unsigned op)
 | 
						|
{
 | 
						|
	if (op < ARRAY_SIZE(xen_hypercall_names) && xen_hypercall_names[op] != NULL)
 | 
						|
		return xen_hypercall_names[op];
 | 
						|
 | 
						|
	return "";
 | 
						|
}
 | 
						|
 | 
						|
#define CREATE_TRACE_POINTS
 | 
						|
#include <trace/events/xen.h>
 |