|
|
@@ -35,6 +35,8 @@
|
|
|
#include "ocrdma_ah.h"
|
|
|
#include "ocrdma_hw.h"
|
|
|
|
|
|
+#define OCRDMA_VID_PCP_SHIFT 0xD
|
|
|
+
|
|
|
static inline int set_av_attr(struct ocrdma_dev *dev, struct ocrdma_ah *ah,
|
|
|
struct ib_ah_attr *attr, int pdid)
|
|
|
{
|
|
|
@@ -55,7 +57,7 @@ static inline int set_av_attr(struct ocrdma_dev *dev, struct ocrdma_ah *ah,
|
|
|
if (vlan_tag && (vlan_tag < 0x1000)) {
|
|
|
eth.eth_type = cpu_to_be16(0x8100);
|
|
|
eth.roce_eth_type = cpu_to_be16(OCRDMA_ROCE_ETH_TYPE);
|
|
|
- vlan_tag |= (attr->sl & 7) << 13;
|
|
|
+ vlan_tag |= (dev->sl & 0x07) << OCRDMA_VID_PCP_SHIFT;
|
|
|
eth.vlan_tag = cpu_to_be16(vlan_tag);
|
|
|
eth_sz = sizeof(struct ocrdma_eth_vlan);
|
|
|
vlan_enabled = true;
|