# undef assert
 #endif
 #ifdef CONFIG_B43LEGACY_DEBUG
-# define B43legacy_WARN_ON(expr)                                       \
-       do {                                                            \
-               if (unlikely((expr))) {                                 \
-                       printk(KERN_INFO PFX "Test (%s) failed at:"     \
-                                             " %s:%d:%s()\n",          \
-                                             #expr, __FILE__,          \
-                                             __LINE__, __FUNCTION__);  \
-               }                                                       \
-       } while (0)
+# define B43legacy_WARN_ON(x)  WARN_ON(x)
 # define B43legacy_BUG_ON(expr)                                                \
        do {                                                            \
                if (unlikely((expr))) {                                 \
        } while (0)
 # define B43legacy_DEBUG       1
 #else
-# define B43legacy_WARN_ON(x)  do { /* nothing */ } while (0)
+/* This will evaluate the argument even if debugging is disabled. */
+static inline bool __b43legacy_warn_on_dummy(bool x) { return x; }
+# define B43_WARN_ON(x)        __b43legacy_warn_on_dummy(unlikely(!!(x)))
 # define B43legacy_BUG_ON(x)   do { /* nothing */ } while (0)
 # define B43legacy_DEBUG       0
 #endif
 
        B43legacy_WARN_ON(ie_start != offsetof(struct ieee80211_mgmt,
                                               u.beacon.variable));
 
-       if (src_size < ie_start) {
-               B43legacy_WARN_ON(1);
+       if (B43legacy_WARN_ON(src_size < ie_start))
                return NULL;
-       }
 
        dest_data = kmalloc(src_size, GFP_ATOMIC);
        if (unlikely(!dest_data))