Message ID | 20090917171504.649ba29b.akpm@linux-foundation.org |
---|---|
State | Not Applicable |
Delegated to: | David Miller |
Headers | show |
On Thu, 17 Sep 2009 17:15:04 -0700 Andrew Morton <akpm@linux-foundation.org> wrote: > There's a shortcoming in the current BUILD_BUG_ON() - it silently does > nothing if passed a non-constant arg. > > I suspect that in the 2.6.31 code, that BUILD_BUG_ON() just does > nothing at all, and that Jan's patch is now exposing this. It might be > compiler-version dependent too. > > > <tests it> > > Yup, on base 2.6.31, this: > > --- a/arch/sparc/kernel/vio.c~a > +++ a/arch/sparc/kernel/vio.c > @@ -23,6 +23,8 @@ static const struct vio_device_id *vio_m > const char *type, *compat; > int len; > > + vio_dring_avail(NULL, 33); > + > type = dev->type; > compat = dev->compat; > len = dev->compat_len; > _ > > compiles without error with gcc-3.4.5. And I can't immediately find a way to make any compile-time error occur here, with or without Jan's patch. hm. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Andrew Morton <akpm@linux-foundation.org> Date: Thu, 17 Sep 2009 17:15:04 -0700 > There's a shortcoming in the current BUILD_BUG_ON() - it silently does > nothing if passed a non-constant arg. > > I suspect that in the 2.6.31 code, that BUILD_BUG_ON() just does > nothing at all, and that Jan's patch is now exposing this. It might be > compiler-version dependent too. > > > <tests it> > > Yup, on base 2.6.31, this: Ok, I'll have to either change this function to a macro or get rid of the check. Thanks. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: David Miller <davem@davemloft.net> Date: Thu, 17 Sep 2009 17:31:54 -0700 (PDT) > From: Andrew Morton <akpm@linux-foundation.org> > Date: Thu, 17 Sep 2009 17:15:04 -0700 > >> There's a shortcoming in the current BUILD_BUG_ON() - it silently does >> nothing if passed a non-constant arg. >> >> I suspect that in the 2.6.31 code, that BUILD_BUG_ON() just does >> nothing at all, and that Jan's patch is now exposing this. It might be >> compiler-version dependent too. >> >> >> <tests it> >> >> Yup, on base 2.6.31, this: > > Ok, I'll have to either change this function to a macro or > get rid of the check. I can't even get GCC to see the constant evaluated by is_power_of_2(). I give up, I'll just remove the BUILD_BUG_ON() entirely. -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- a/arch/sparc/kernel/vio.c~a +++ a/arch/sparc/kernel/vio.c @@ -23,6 +23,8 @@ static const struct vio_device_id *vio_m const char *type, *compat; int len; + vio_dring_avail(NULL, 33); + type = dev->type; compat = dev->compat; len = dev->compat_len;