Skip to contentSkip to conversation

rt2x00: Fix txdone_entry_desc_flags

PATCH Applied Jochen Friedrich 2 participants 2 messages Aug 8, 2008 Networking drivers (wireless)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 rt2x00: Fix txdone_entry_desc_flags

txdone_entry_desc_flags is used with __set_bit and test_bit which bit-shift the values, so don't bit-shift the flags in the enum. Also make sure flags are initialized before being used.

---
 drivers/net/wireless/rt2x00/rt2x00queue.h |    8 ++++----
 drivers/net/wireless/rt2x00/rt2x00usb.c   |    1 +
 2 files changed, 5 insertions(+), 4 deletions(-)
drivers/net/wireless/rt2x00/rt2x00queue.h +4 -4
index 01a6567..37f3f98 100644
@@ -191,10 +191,10 @@ struct rxdone_entry_desc {
  *	frame transmission failed due to excessive retries.
  */
 enum txdone_entry_desc_flags {
-	TXDONE_UNKNOWN = 1 << 0,
-	TXDONE_SUCCESS = 1 << 1,
-	TXDONE_FAILURE = 1 << 2,
-	TXDONE_EXCESSIVE_RETRY = 1 << 3,
+	TXDONE_UNKNOWN,
+	TXDONE_SUCCESS,
+	TXDONE_FAILURE,
+	TXDONE_EXCESSIVE_RETRY,
 };
 
 /**
drivers/net/wireless/rt2x00/rt2x00usb.c +1 -0
index 8d76bb2..2050227 100644
@@ -181,6 +181,7 @@ static void rt2x00usb_interrupt_txdone(struct urb *urb)
 	 * (Only indirectly by looking at the failed TX counters
 	 * in the register).
 	 */
+	txdesc.flags = 0;
 	if (!urb->status)
 		__set_bit(TXDONE_UNKNOWN, &txdesc.flags);
 	else
Signature · 1 line
1.5.6.3
#1 lore raw
Quoted 3 lines · Jochen Friedrich

txdone_entry_desc_flags is used with __set_bit and test_bit which bit-shift the values, so don't bit-shift the flags in the enum. Also make sure flags are initialized before being used.

Good catch,

Applied to rt2x00.git

Thanks,

Ivo

Quoted 37 lines
---
 drivers/net/wireless/rt2x00/rt2x00queue.h |    8 ++++----
 drivers/net/wireless/rt2x00/rt2x00usb.c   |    1 +
 2 files changed, 5 insertions(+), 4 deletions(-)
drivers/net/wireless/rt2x00/rt2x00queue.h +4 -4
index 01a6567..37f3f98 100644
@@ -191,10 +191,10 @@ struct rxdone_entry_desc {
  *	frame transmission failed due to excessive retries.
  */
 enum txdone_entry_desc_flags {
-	TXDONE_UNKNOWN = 1 << 0,
-	TXDONE_SUCCESS = 1 << 1,
-	TXDONE_FAILURE = 1 << 2,
-	TXDONE_EXCESSIVE_RETRY = 1 << 3,
+	TXDONE_UNKNOWN,
+	TXDONE_SUCCESS,
+	TXDONE_FAILURE,
+	TXDONE_EXCESSIVE_RETRY,
 };
 
 /**
drivers/net/wireless/rt2x00/rt2x00usb.c +1 -0
index 8d76bb2..2050227 100644
@@ -181,6 +181,7 @@ static void rt2x00usb_interrupt_txdone(struct urb *urb)
 	 * (Only indirectly by looking at the failed TX counters
 	 * in the register).
 	 */
+	txdesc.flags = 0;
 	if (!urb->status)
 		__set_bit(TXDONE_UNKNOWN, &txdesc.flags);
 	else