Skip to contentSkip to conversation

atl1c: add missing parentheses

PATCH In review Roel Kluin 3 participants 4 messages Jul 12, 2009 – Jul 17, 2009

Subsystems (2)
lore
Share & tools
lore

Roel Kluin

author
#0 lore raw

PATCH 1/1 atl1c: add missing parentheses

Parentheses are required or the comparison occurs before the bitand.

---
#include <stdio.h>
int main()

{
        printf("0 & 1 == 0: %u\n", 0 & 1 == 0);
        printf("1 & 1 == 0: %u\n", 1 & 1 == 0);
        printf("(0 & 1) == 0: %u\n", (0 & 1) == 0);
        printf("(1 & 1) == 0: %u\n", (1 & 1) == 0);
        return 0;
}

output:
0 & 1 == 0: 0
1 & 1 == 0: 0
(0 & 1) == 0: 1
(1 & 1) == 0: 0

drivers/net/atl1c/atl1c.h +4 -4
index e1658ef..2a1120a 100644
@@ -188,14 +188,14 @@ struct atl1c_tpd_ext_desc {
 #define RRS_HDS_TYPE_DATA	2
 
 #define RRS_IS_NO_HDS_TYPE(flag) \
-	(((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == 0)
+	((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == 0)
 
 #define RRS_IS_HDS_HEAD(flag) \
-	(((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == \
+	((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \
 			RRS_HDS_TYPE_HEAD)
 
 #define RRS_IS_HDS_DATA(flag) \
-	(((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == \
+	((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \
 			RRS_HDS_TYPE_DATA)
 
 /* rrs word 3 bit 0:31 */
@@ -245,7 +245,7 @@ struct atl1c_tpd_ext_desc {
 #define RRS_PACKET_TYPE_802_3  	1
 #define RRS_PACKET_TYPE_ETH	0
 #define RRS_PACKET_IS_ETH(word) \
-	(((word) >> RRS_PACKET_TYPE_SHIFT) & RRS_PACKET_TYPE_MASK == \
+	((((word) >> RRS_PACKET_TYPE_SHIFT) & RRS_PACKET_TYPE_MASK) == \
 			RRS_PACKET_TYPE_ETH)
 #define RRS_RXD_IS_VALID(word) \
 	((((word) >> RRS_RXD_UPDATED_SHIFT) & RRS_RXD_UPDATED_MASK) == 1)
#2 lore raw
In reply to Roel Kluin

Adding Jie (Atheros maintainer) to cc list.

Quoted 52 lines · Roel Kluin

Parentheses are required or the comparison occurs before the bitand.

---
#include <stdio.h>
int main()
{
       printf("0 & 1 == 0: %u\n", 0 & 1 == 0); printf("1 & 1 == 0: %u\n", 1 & 1 == 0); printf("(0 & 1) == 0: %u\n", (0 & 1) == 0); printf("(1 & 1) == 0: %u\n", (1 & 1) == 0); return 0;
}

output:
0 & 1 == 0: 0
1 & 1 == 0: 0
(0 & 1) == 0: 1
(1 & 1) == 0: 0

drivers/net/atl1c/atl1c.h +4 -4
index e1658ef..2a1120a 100644
@@ -188,14 +188,14 @@ struct atl1c_tpd_ext_desc {
  #define RRS_HDS_TYPE_DATA      2
 
  #define RRS_IS_NO_HDS_TYPE(flag) \
-       (((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == 0)
+       ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == 0)
 
  #define RRS_IS_HDS_HEAD(flag) \
-       (((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == \
+       ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \
                        RRS_HDS_TYPE_HEAD)
 
  #define RRS_IS_HDS_DATA(flag) \
-       (((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == \
+       ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \
                        RRS_HDS_TYPE_DATA)
 
  /* rrs word 3 bit 0:31 */
@@ -245,7 +245,7 @@ struct atl1c_tpd_ext_desc {
  #define RRS_PACKET_TYPE_802_3          1
  #define RRS_PACKET_TYPE_ETH    0
  #define RRS_PACKET_IS_ETH(word) \
-       (((word) >> RRS_PACKET_TYPE_SHIFT) & RRS_PACKET_TYPE_MASK == \
+       ((((word) >> RRS_PACKET_TYPE_SHIFT) & RRS_PACKET_TYPE_MASK) == \
                        RRS_PACKET_TYPE_ETH)
  #define RRS_RXD_IS_VALID(word) \
        ((((word) >> RRS_RXD_UPDATED_SHIFT) & RRS_RXD_UPDATED_MASK) == 1)