Re: transport_class: BUG if we can't release the attribute container

Boaz Harrosh
2008-04-02T14:32:59Z

James Bottomley wrote:
<snip>
> Well, we can agree to differ on this. The camp that wants no side
> effects for BUG_ON() does so in case they want to define it to be a nop.
> I've always argued that having special rules for this that differ from
> functions is asking for trouble. It's also easy to preserve the side
> effects by making the compile out do this:
>
> #define BUG_ON(x) (void)(x)
>
> That lets the compiler process the side effects and discard the result.
> This basically means the rules for BUG_ON() arguments are identical to
> the rules for function arguments ... I think that's consonant with the
> principle of least surprise.
>

The Kernel seems to agree with you:
#define BUG_ON(condition) do { if (condition) ; } while(0)

what should we do with stuff like
BUG_ON(check_foo_valid());
which is time consuming and should not run on production machines

should we directly use:
#ifdef CONFIG_BUG
or is there some other facility for that?

Boaz