2009-11-02 06:08:20

by Stephen Rothwell

[permalink] [raw]
Subject: Re: KVM: powerpc: Fix BUILD_BUG_ON condition

Hi Hollis, Avi,

This commit was added to the kvm tree recently:

> Author: Hollis Blanchard <[email protected]>
> 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 protected]>
> Signed-off-by: Avi Kivity <[email protected]>
>
> 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. So I have still commented out the BUILD_BUG_ON
in linux-next.

--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/


Attachments:
(No filename) (1.33 kB)
(No filename) (198.00 B)
Download all attachments

2009-11-02 16:42:53

by Hollis Blanchard

[permalink] [raw]
Subject: Re: KVM: powerpc: Fix BUILD_BUG_ON condition

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 protected]>
> > 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 protected]>
> > Signed-off-by: Avi Kivity <[email protected]>
> >
> > 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