Hi, On Mon, 4 Dec 2017 12:37:02 +0900 Masahiro Yamada wrote: > BUG() and BUG_ON() are generally used to test a condition that should > never happen. If it does, it is a bug. > > Linux always enables them, but doing so in U-Boot causes image size > problems on some platforms. Introduce CONFIG_ENABLE_BUG_CHECKS to > make them no-op by default. Platforms without image size constraint > are free to enable this option to catch bugs easily. > > Likewise, silence WARN_ON() unless this option is enabled. > > Suggested-by: Tom Rini <tr...@konsulko.com> > Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com> > --- > > Changes in v2: > - Newly added > > include/linux/bug.h | 9 ++++++++- > lib/Kconfig | 7 +++++++ > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/include/linux/bug.h b/include/linux/bug.h > index f07bb71..ac1c7de 100644 > --- a/include/linux/bug.h > +++ b/include/linux/bug.h > @@ -6,17 +6,24 @@ > #include <linux/compiler.h> > #include <linux/printk.h> > > +#ifdef CONFIG_ENABLE_BUG_CHECKS > #define BUG() do { \ > printk("BUG at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); \ > panic("BUG!"); \ > } while (0) > +#define __WARN() \ > + printk("WARNING at %s:%d/%s()!\n", __FILE__, __LINE__, __func__) > +#else > +#define BUG() > +#define __WARN() > +#endif > > #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) > > #define WARN_ON(condition) ({ > \ > int __ret_warn_on = !!(condition); \ > if (unlikely(__ret_warn_on)) \ > - printk("WARNING at %s:%d/%s()!\n", __FILE__, __LINE__, > __func__); \ > + __WARN(); \ > unlikely(__ret_warn_on); \ > }) > > diff --git a/lib/Kconfig b/lib/Kconfig > index 00ac650..36b1b3b 100644 > --- a/lib/Kconfig > +++ b/lib/Kconfig > @@ -45,6 +45,13 @@ config USE_TINY_PRINTF > > The supported format specifiers are %c, %s, %u/%d and %x. > > +config ENABLE_BUG_CHECKS > + bool "Enable BUG/BUG_ON() checks and WARN_ON() logs" > + help This should be 'default y' IMO to keep the current behaviour for all existing platforms.
Lothar Waßmann _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot