linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ivo van Doorn <ivdoorn@gmail.com>
To: "John W. Linville" <linville@tuxdriver.com>
Cc: rt2400-devel@lists.sourceforge.net, linux-wireless@vger.kernel.org
Subject: [PATCH 02/11] rt2x00: Fix compile-time ffs calculation macros.
Date: Tue, 3 Jun 2008 20:29:39 +0200	[thread overview]
Message-ID: <200806032029.40085.IvDoorn@gmail.com> (raw)
In-Reply-To: <200806032025.45029.IvDoorn@gmail.com>

The compile_ffsx macros were missing a set of parentheses, which resulted in
wrong bit offset calculations.

This fixes rt61pci detection failures, whereby the rf chipset wasn't detected
properly due to improper bit shifting.

This patch is based on GertJan's report + patch to fix the parentheses problem

Signed-off-by: Gertjan van Wingerde <gwingerde@kpnplanet.nl>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
---
 drivers/net/wireless/rt2x00/rt2x00reg.h |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00reg.h b/drivers/net/wireless/rt2x00/rt2x00reg.h
index 03e846f..7999d54 100644
--- a/drivers/net/wireless/rt2x00/rt2x00reg.h
+++ b/drivers/net/wireless/rt2x00/rt2x00reg.h
@@ -145,19 +145,23 @@ struct rt2x00_field32 {
  * compile-time rather then run-time.
  */
 #define compile_ffs2(__x) \
-	((__x) & 0x1) ? 0 : 1
+	( ((__x) & 0x1) ? 0 : 1 )
 
 #define compile_ffs4(__x) \
-	((__x) & 0x3) ? compile_ffs2(__x) : compile_ffs2(__x >> 2) + 2
+	( ((__x) & 0x3) ? \
+	    compile_ffs2(__x) : (compile_ffs2(__x >> 2) + 2) )
 
 #define compile_ffs8(__x) \
-	((__x) & 0xf) ? compile_ffs4(__x) : compile_ffs4(__x >> 4) + 4
+	( ((__x) & 0xf) ? \
+	    compile_ffs4(__x) : (compile_ffs4(__x >> 4) + 4) )
 
 #define compile_ffs16(__x) \
-	((__x) & 0xff) ? compile_ffs8(__x) : compile_ffs8(__x >> 8) + 8
+	( ((__x) & 0xff) ? \
+	    compile_ffs8(__x) : (compile_ffs8(__x >> 8) + 8) )
 
 #define compile_ffs32(__x) \
-	((__x) & 0xffff) ? compile_ffs16(__x) : compile_ffs16(__x >> 16) + 16
+	( ((__x) & 0xffff) ? \
+	    compile_ffs16(__x) : (compile_ffs16(__x >> 16) + 16) )
 
 /*
  * This macro will check the requirements for the FIELD{8,16,32} macros
-- 
1.5.5.3


  parent reply	other threads:[~2008-06-03 18:26 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200806032024.52931.IvDoorn@gmail.com>
2008-06-03 18:29 ` [PATCH 01/11] rt2x00: Calculate register offset during compile time Ivo van Doorn
2008-06-03 20:05   ` [PATCH 01/11 v2] " Ivo van Doorn
2008-06-03 20:32     ` Johannes Berg
2008-06-03 20:44       ` Ivo van Doorn
2008-06-03 20:45     ` [PATCH 01/11 v3] " Ivo van Doorn
2008-06-03 20:41       ` Johannes Berg
2008-06-03 21:18       ` Harvey Harrison
2008-06-03 22:10         ` Ivo van Doorn
     [not found] ` <200806032025.45029.IvDoorn@gmail.com>
2008-06-03 18:29   ` Ivo van Doorn [this message]
2008-06-03 18:52     ` [PATCH 02/11] rt2x00: Fix compile-time ffs calculation macros Johannes Berg
2008-06-03 20:02       ` Ivo van Doorn
     [not found]   ` <200806032026.16128.IvDoorn@gmail.com>
2008-06-03 18:29     ` [PATCH 03/11] rt2x00: Make rt2x00_set/get_field macros Ivo van Doorn
     [not found]     ` <200806032026.40506.IvDoorn@gmail.com>
2008-06-03 18:29       ` [PATCH 04/11] rt2x00: Restrict DMA to 32-bit addresses Ivo van Doorn
     [not found]       ` <200806032027.06094.IvDoorn@gmail.com>
2008-06-03 18:29         ` [PATCH 05/11] rt2x00: Don't kill guardian_urb when it wasn't created Ivo van Doorn
2008-06-03 20:02           ` Stefanik Gábor
     [not found]         ` <200806032027.27540.IvDoorn@gmail.com>
2008-06-03 18:29           ` [PATCH 06/11] rt2x00: Removed unused descriptor read in txdone Ivo van Doorn
     [not found]           ` <200806032027.47342.IvDoorn@gmail.com>
2008-06-03 18:29             ` [PATCH 07/11] rt2x00: Remove CTS/RTS check in tx() Ivo van Doorn
     [not found]             ` <200806032028.03154.IvDoorn@gmail.com>
2008-06-03 18:30               ` [PATCH 08/11] rt2x00: Move led initialization into function Ivo van Doorn
     [not found] ` <200806032028.21795.IvDoorn@gmail.com>
     [not found]   ` <200806032028.39575.IvDoorn@gmail.com>
2008-06-03 18:29     ` [PATCH 10/11] rt2x00: Fix queue initialization Ivo van Doorn
2008-06-03 18:29       ` [PATCH 11/11] rt2x00: Release rt2x00 2.1.7 Ivo van Doorn
2008-06-03 18:30   ` [PATCH 09/11] rt2x00: Cleanup/optimize set_state() function callback function Ivo van Doorn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200806032029.40085.IvDoorn@gmail.com \
    --to=ivdoorn@gmail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=rt2400-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).