Browse Source

RDMA/ocrdma: Fix AV_VALID bit position

Fix ah->av->valid bit position and big endian portability.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Devesh Sharma 11 years ago
parent
commit
fe5e8a1acc

+ 1 - 0
drivers/infiniband/hw/ocrdma/ocrdma_ah.c

@@ -84,6 +84,7 @@ static inline int set_av_attr(struct ocrdma_dev *dev, struct ocrdma_ah *ah,
 	memcpy((u8 *)ah->av + eth_sz, &grh, sizeof(struct ocrdma_grh));
 	memcpy((u8 *)ah->av + eth_sz, &grh, sizeof(struct ocrdma_grh));
 	if (vlan_enabled)
 	if (vlan_enabled)
 		ah->av->valid |= OCRDMA_AV_VLAN_VALID;
 		ah->av->valid |= OCRDMA_AV_VLAN_VALID;
+	ah->av->valid = cpu_to_le32(ah->av->valid);
 	return status;
 	return status;
 }
 }
 
 

+ 1 - 1
drivers/infiniband/hw/ocrdma/ocrdma_sli.h

@@ -1694,7 +1694,7 @@ struct ocrdma_grh {
 	u16	rsvd;
 	u16	rsvd;
 } __packed;
 } __packed;
 
 
-#define OCRDMA_AV_VALID		Bit(0)
+#define OCRDMA_AV_VALID		Bit(7)
 #define OCRDMA_AV_VLAN_VALID	Bit(1)
 #define OCRDMA_AV_VLAN_VALID	Bit(1)
 
 
 struct ocrdma_av {
 struct ocrdma_av {