Fix the B43legacy_WARN_ON macro so that it will evaluate expressions.

Signed-off-by: Stefano Brivio <[EMAIL PROTECTED]>
---
Index: wireless-2.6/drivers/net/wireless/b43legacy/b43legacy.h
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/b43legacy/b43legacy.h
+++ wireless-2.6/drivers/net/wireless/b43legacy/b43legacy.h
@@ -326,15 +326,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))) {                                 \
@@ -345,7 +337,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: wireless-2.6/drivers/net/wireless/b43legacy/main.c
===================================================================
--- wireless-2.6.orig/drivers/net/wireless/b43legacy/main.c
+++ wireless-2.6/drivers/net/wireless/b43legacy/main.c
@@ -1066,10 +1066,8 @@ static const u8 *b43legacy_generate_prob
        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))

-- 
Ciao
Stefano
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to