|
@@ -379,18 +379,10 @@ void __snd_printk(unsigned int level, const char *file, int line,
|
|
|
* snd_BUG_ON - debugging check macro
|
|
|
* @cond: condition to evaluate
|
|
|
*
|
|
|
- * When CONFIG_SND_DEBUG is set, this macro evaluates the given condition,
|
|
|
- * and call WARN() and returns the value if it's non-zero.
|
|
|
- *
|
|
|
- * When CONFIG_SND_DEBUG is not set, this just returns zero, and the given
|
|
|
- * condition is ignored.
|
|
|
- *
|
|
|
- * NOTE: the argument won't be evaluated at all when CONFIG_SND_DEBUG=n.
|
|
|
- * Thus, don't put any statement that influences on the code behavior,
|
|
|
- * such as pre/post increment, to the argument of this macro.
|
|
|
- * If you want to evaluate and give a warning, use standard WARN_ON().
|
|
|
+ * Has the same behavior as WARN_ON when CONFIG_SND_DEBUG is set,
|
|
|
+ * otherwise just evaluates the conditional and returns the value.
|
|
|
*/
|
|
|
-#define snd_BUG_ON(cond) WARN((cond), "BUG? (%s)\n", __stringify(cond))
|
|
|
+#define snd_BUG_ON(cond) WARN_ON((cond))
|
|
|
|
|
|
#else /* !CONFIG_SND_DEBUG */
|
|
|
|
|
@@ -400,11 +392,11 @@ __printf(2, 3)
|
|
|
static inline void _snd_printd(int level, const char *format, ...) {}
|
|
|
|
|
|
#define snd_BUG() do { } while (0)
|
|
|
-static inline int __snd_bug_on(int cond)
|
|
|
-{
|
|
|
- return 0;
|
|
|
-}
|
|
|
-#define snd_BUG_ON(cond) __snd_bug_on(0 && (cond)) /* always false */
|
|
|
+
|
|
|
+#define snd_BUG_ON(condition) ({ \
|
|
|
+ int __ret_warn_on = !!(condition); \
|
|
|
+ unlikely(__ret_warn_on); \
|
|
|
+})
|
|
|
|
|
|
#endif /* CONFIG_SND_DEBUG */
|
|
|
|