Subject: Re: KVM: powerpc: Fix BUILD_BUG_ON condition

From: Hollis Blanchard <[email-masked]>
Date: Mon, 02 Nov 2009 08:42:31 -0800

On Mon, 2009-11-02 at 17:08 +1100, Stephen Rothwell wrote:
> Hi Hollis, Avi,
> 
> This commit was added to the kvm tree recently:
> 
> > Author: Hollis Blanchard <[email-masked]>
> > Date:   Fri Oct 23 00:35:30 2009 +0000
> > 
> >     KVM: powerpc: Fix BUILD_BUG_ON condition
> >     
> >     The old BUILD_BUG_ON implementation didn't work with __builtin_constant_p().
> >     Fixing that revealed this test had been inverted for a long time without
> >     anybody noticing...
> >     
> >     Signed-off-by: Hollis Blanchard <[email-masked]>
> >     Signed-off-by: Avi Kivity <[email-masked]>
> > 
> > diff --git a/arch/powerpc/kvm/timing.h b/arch/powerpc/kvm/timing.h
> > index bb13b1f..a550f0f 100644
> > --- a/arch/powerpc/kvm/timing.h
> > +++ b/arch/powerpc/kvm/timing.h
> > @@ -48,7 +48,7 @@ static inline void kvmppc_set_exit_type(struct kvm_vcpu *vcpu, int type) {}
> >  static inline void kvmppc_account_exit_stat(struct kvm_vcpu *vcpu, int type)
> >  {
> >  	/* type has to be known at build time for optimization */
> > -	BUILD_BUG_ON(__builtin_constant_p(type));
> > +	BUILD_BUG_ON(!__builtin_constant_p(type));
> >  	switch (type) {
> >  	case EXT_INTR_EXITS:
> >  		vcpu->stat.ext_intr_exits++;
> 
> It is OK as far as it goes.  It still does not build, though, due to the
> new BUILD_BUG_ON macro.

Correct.

> So I have still commented out the BUILD_BUG_ON in linux-next.

I've pointed out a few times that Rusty's patch (Subject "BUILD_BUG_ON:
make it handle more cases", Date "Tue, 20 Oct 2009 14:15:33 +1030") is
needed to fix the problem with BUILD_BUG_ON().

So far I haven't seen anybody acknowledge the patch or indicate it will
actually be committed.

-- 
Hollis Blanchard
IBM Linux Technology Center