On Tue, Oct 24, 2017 at 05:48:42PM +0900, David Miller wrote: > > This discussion has happened before. > > But I'll explain the conclusion here for your benefit. > > BUG_ON() is a statement and everything inside of it will > always execute. > > BUG_ON() is always preferred because it allows arch > specific code to pass the conditional result properly > into inline asm and builtins for optimal code generation.
This is a good point. However, while a little bit more verbose you can still achieve the same assembly-level result by something like int err; err = <insert real code here>; BUG_ON(err); Having real code in BUG_ON may pose problems to people reading the code because some of us tend to ignore code in BUG_ON and similar macros such as BUILD_BUG_ON. Cheers, -- Email: Herbert Xu <herb...@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt