Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Sep 2018 08:56:08 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r338612 - stable/11/sys/ofed/include/rdma
Message-ID:  <201809120856.w8C8u8mK038292@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Wed Sep 12 08:56:08 2018
New Revision: 338612
URL: https://svnweb.freebsd.org/changeset/base/338612

Log:
  MFC r338491:
  ibcore: Fix endless loop in searching for matching VLAN device
  
  In r337943 ifnet's if_pcp was set to the PCP value in use
  instead of IFNET_PCP_NONE.
  Current ibcore code assumes that if_pcp is IFNET_PCP_NONE with
  VLAN interfaces so it can identify prio-tagged traffic.
  Fix that by explicitly verifying that that the if_type is IFT_ETHER
  and not IFT_L2VLAN.
  
  Approved by:    re (Marius), hselasky (mentor), kib (mentor)
  Sponsored by:   Mellanox Technologies

Modified:
  stable/11/sys/ofed/include/rdma/ib_addr.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/ofed/include/rdma/ib_addr.h
==============================================================================
--- stable/11/sys/ofed/include/rdma/ib_addr.h	Wed Sep 12 08:46:49 2018	(r338611)
+++ stable/11/sys/ofed/include/rdma/ib_addr.h	Wed Sep 12 08:56:08 2018	(r338612)
@@ -165,7 +165,7 @@ static inline u16 rdma_vlan_dev_vlan_id(const struct n
 {
 	uint16_t tag;
 
-	if (dev->if_pcp != IFNET_PCP_NONE)
+	if (dev->if_type == IFT_ETHER && dev->if_pcp != IFNET_PCP_NONE)
 		return 0x0000;	/* prio-tagged traffic */
 	if (VLAN_TAG(__DECONST(struct ifnet *, dev), &tag) != 0)
 		return 0xffff;
@@ -352,7 +352,7 @@ 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_pcp != IFNET_PCP_NONE)
+	if (dev->if_type == IFT_ETHER && dev->if_pcp != IFNET_PCP_NONE)
 		return dev; /* prio-tagged traffic */
 	return VLAN_TRUNKDEV(__DECONST(struct ifnet *, dev));
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201809120856.w8C8u8mK038292>