Subject: Re: linux-next: Tree for July 25 (xen)

From: Ingo Molnar <[email-masked]>
Date: Thu, 4 Aug 2011 21:35:34 +0200

* Randy Dunlap <[email-masked]> wrote:

> On Mon, 25 Jul 2011 16:25:42 +1000 Stephen Rothwell wrote:
> 
> > Hi all,
> 
> xen has lots of build errors and warnings (all on x86_64).
> 
>   CC      arch/x86/xen/setup.o
> In file included from arch/x86/include/asm/xen/hypercall.h:42,
>                  from arch/x86/xen/setup.c:19:
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list
> include/trace/events/xen.h:31: warning: its scope is only this definition or declaration, which is probably not what you want
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list
> In file included from arch/x86/xen/setup.c:19:
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_fpu_taskswitch':
> arch/x86/include/asm/xen/hypercall.h:465: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_update_va_mapping':
> arch/x86/include/asm/xen/hypercall.h:483: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_grant_table_op':
> arch/x86/include/asm/xen/hypercall.h:495: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_update_va_mapping_otherdomain':
> arch/x86/include/asm/xen/hypercall.h:516: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_update_descriptor':
> arch/x86/include/asm/xen/hypercall.h:534: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_memory_op':
> arch/x86/include/asm/xen/hypercall.h:544: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_mmu_update':
> arch/x86/include/asm/xen/hypercall.h:557: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_mmuext_op':
> arch/x86/include/asm/xen/hypercall.h:570: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_set_gdt':
> arch/x86/include/asm/xen/hypercall.h:580: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
> arch/x86/include/asm/xen/hypercall.h: In function 'MULTI_stack_switch':
> arch/x86/include/asm/xen/hypercall.h:591: warning: passing argument 1 of 'trace_xen_mc_entry' from incompatible pointer type
> include/trace/events/xen.h:48: note: expected 'struct multicall_entry *' but argument is of type 'struct multicall_entry *'
>   CC      arch/x86/xen/multicalls.o
> In file included from arch/x86/include/asm/xen/hypercall.h:42,
>                  from arch/x86/xen/multicalls.c:26:
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list
> include/trace/events/xen.h:31: warning: its scope is only this definition or declaration, which is probably not what you want
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list
> include/trace/events/xen.h:31: warning: 'struct multicall_entry' declared inside parameter list

These build failures are still triggering upstream:

 arch/x86/xen/trace.c:44:2: error: array index in initializer not of integer type
 arch/x86/xen/trace.c:44:2: error: (near initialization for ‘xen_hypercall_names’)
 arch/x86/xen/trace.c:45:1: error: ‘__HYPERVISOR_arch_4’ undeclared here (not in a function)
 arch/x86/xen/trace.c:45:2: error: array index in initializer not of integer type
 arch/x86/xen/trace.c:45:2: error: (near initialization for ‘xen_hypercall_names’)

even after:

 b3c4b9825075: xen/tracing: fix compile errors when tracing is disabled.

Btw., that the heck is going on with the commit that introduced the 
build failure:

 commit bd9ddc875b6659f9f74dcfd285c472bc58041abd
 Author:     Jeremy Fitzhardinge <[email-masked]>
 AuthorDate: Mon Jun 20 17:52:13 2011 -0700
 Commit:     Jeremy Fitzhardinge <[email-masked]>
 CommitDate: Mon Jul 18 15:43:46 2011 -0700

It was apparently rebased shortly before the merge window and sent to 
Linus 3 days later, with little to no linux-next testing ...

I'm absolutely unhappy about how the Xen tree is being run. It's 
using a sloppy, crappy workflow and it is producing crap.

Thanks,

	Ingo