b43legacy: fix B43legacy_WARN_ON macro
Stefano Brivio [Fri, 8 Feb 2008 05:31:39 +0000 (06:31 +0100)]
Fix the B43legacy_WARN_ON macro so that it will evaluate expressions.

Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
Signed-off-by: John W. Linville <linville@tuxdriver.com>

drivers/net/wireless/b43legacy/b43legacy.h
drivers/net/wireless/b43legacy/main.c

index 17abf3c..6a63a6e 100644 (file)
@@ -330,15 +330,7 @@ enum {
 # 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))) {                                 \
@@ -349,7 +341,9 @@ enum {
        } 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
index 62e679a..82953dd 100644 (file)
@@ -1068,10 +1068,8 @@ static const u8 *b43legacy_generate_probe_resp(struct b43legacy_wldev *dev,
        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))