Hi Arnd, I recently tried to disable the BUG macros on x86-32. I disabled the config item in 'General Setup -> Configure standard kernel features (expert users) -> BUG() support'. However, BUG/BUG_ON is still defined. In the !CONFIG_BUG branch in include/asm-generic/bug.h (line 181) the code checks for the existence of architecture-specific variants of those macros. Since x86 defines its own version of BUG(), line 182 is *not* used. In the following, the x86 variant of BUG() is then used to define the BUG_ON() macro. I propose a patch that really disables both macros if the developer wants it. It undefines the respective x86 variants, and defines both macros as 'empty' macros. Regards, Alex -- Technische Universität Dortmund Alexander Lochmann PGP key: 0xBC3EF6FD Otto-Hahn-Str. 16 phone: +49.231.7556141 D-44227 Dortmund fax: +49.231.7556116 http://ess.cs.tu-dortmund.de/Staff/al
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h index 20561a60db9c..1e7977582277 100644 --- a/include/asm-generic/bug.h +++ b/include/asm-generic/bug.h @@ -178,14 +178,17 @@ void __warn(const char *file, int line, void *caller, unsigned taint, }) #else /* !CONFIG_BUG */ -#ifndef HAVE_ARCH_BUG -#define BUG() do {} while (1) +#ifdef HAVE_ARCH_BUG +#undef BUG #endif -#ifndef HAVE_ARCH_BUG_ON -#define BUG_ON(condition) do { if (condition) BUG(); } while (0) +#ifdef HAVE_ARCH_BUG_ON +#undef BUG_ON #endif +#define BUG_ON(condition) do { if (condition) BUG(); } while (0) +#define BUG() do {} while (1) + #ifndef HAVE_ARCH_WARN_ON #define WARN_ON(condition) ({ \ int __ret_warn_on = !!(condition); \
Attachment:
signature.asc
Description: OpenPGP digital signature