2018-09-08 05:03:47

by Igor Stoppa

[permalink] [raw]
Subject: [PATCH v2] asm-generic: bug: unify hints for BUG_ON()

If BUG_ON() is used instead of BUG(), it means that probably the
preferred outcome is to not BUG(), therefore the condition tested should
be unlikely().

However, when CONFIG_PROFILE_ANNOTATED_BRANCHES is enabled, the hint is
disabled, to avoid generating false-positive warnings caused by
-Wmaybe-uninitialized.

Signed-off-by: Igor Stoppa <[email protected]>
Cc: Arnd Bergmann <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
include/asm-generic/bug.h | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index 20561a60db9c..b91273c36baf 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -58,8 +58,12 @@ struct bug_entry {
#endif

#ifndef HAVE_ARCH_BUG_ON
+#ifdef CONFIG_PROFILE_ANNOTATED_BRANCHES
+#define BUG_ON(condition) do { if (condition) BUG(); } while (0)
+#else
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
#endif
+#endif

#ifdef __WARN_FLAGS
#define __WARN_TAINT(taint) __WARN_FLAGS(BUGFLAG_TAINT(taint))
@@ -183,7 +187,11 @@ void __warn(const char *file, int line, void *caller, unsigned taint,
#endif

#ifndef HAVE_ARCH_BUG_ON
+#ifdef CONFIG_PROFILE_ANNOTATED_BRANCHES
#define BUG_ON(condition) do { if (condition) BUG(); } while (0)
+#else
+#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
+#endif
#endif

#ifndef HAVE_ARCH_WARN_ON
--
2.17.1



2018-09-10 12:18:51

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH v2] asm-generic: bug: unify hints for BUG_ON()

On Sat, Sep 8, 2018 at 6:59 AM Igor Stoppa <[email protected]> wrote:
>
> If BUG_ON() is used instead of BUG(), it means that probably the
> preferred outcome is to not BUG(), therefore the condition tested should
> be unlikely().
>
> However, when CONFIG_PROFILE_ANNOTATED_BRANCHES is enabled, the hint is
> disabled, to avoid generating false-positive warnings caused by
> -Wmaybe-uninitialized.
>
> Signed-off-by: Igor Stoppa <[email protected]>
> Cc: Arnd Bergmann <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> ---

Acked-by: Arnd Bergmann <[email protected]>

I assume this will be included in a longer patch series rather than
going through
my asm-generic tree, right?

Arnd

2018-09-10 12:23:42

by Igor Stoppa

[permalink] [raw]
Subject: Re: [PATCH v2] asm-generic: bug: unify hints for BUG_ON()



On 10/09/18 15:16, Arnd Bergmann wrote:

> Acked-by: Arnd Bergmann <[email protected]>
>
> I assume this will be included in a longer patch series rather than
> going through
> my asm-generic tree, right?

sadly, no: this patch is just for the asm-generic tree
I tried with the longer patch series, but it didn't work out
I'm now submitting individual patches to their respective mailing lists
and maintainers.
It requires more churning, but at least some patches are going through.

--
thanks, igor