aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/ofed/include/rdma/ib_addr.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/ofed/include/rdma/ib_addr.h b/sys/ofed/include/rdma/ib_addr.h
index 49caf7a7844d..09043132f992 100644
--- a/sys/ofed/include/rdma/ib_addr.h
+++ b/sys/ofed/include/rdma/ib_addr.h
@@ -354,9 +354,13 @@ static inline u16 rdma_get_vlan_id(union ib_gid *dgid)
static inline struct net_device *rdma_vlan_dev_real_dev(struct net_device *dev)
{
- if (dev->if_type == IFT_ETHER && dev->if_pcp != IFNET_PCP_NONE)
- return dev; /* prio-tagged traffic */
- return VLAN_TRUNKDEV(__DECONST(struct ifnet *, dev));
+ struct epoch_tracker et;
+
+ NET_EPOCH_ENTER(et);
+ if (dev->if_type != IFT_ETHER || dev->if_pcp == IFNET_PCP_NONE)
+ dev = VLAN_TRUNKDEV(dev); /* non prio-tagged traffic */
+ NET_EPOCH_EXIT(et);
+ return (dev);
}
#endif /* IB_ADDR_H */