浏览代码

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 年之前
父节点
当前提交
fe5e8a1acc
共有 2 个文件被更改,包括 2 次插入1 次删除
  1. 1 0
      drivers/infiniband/hw/ocrdma/ocrdma_ah.c
  2. 1 1
      drivers/infiniband/hw/ocrdma/ocrdma_sli.h

+ 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));
 	if (vlan_enabled)
 		ah->av->valid |= OCRDMA_AV_VLAN_VALID;
+	ah->av->valid = cpu_to_le32(ah->av->valid);
 	return status;
 }
 

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

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