Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Aug 2010 03:05:27 +0000 (UTC)
From:      Jeff Roberson <jeff@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r211256 - projects/ofed/head/sys/ofed/include/rdma
Message-ID:  <201008130305.o7D35RkI074555@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jeff
Date: Fri Aug 13 03:05:26 2010
New Revision: 211256
URL: http://svn.freebsd.org/changeset/base/211256

Log:
   - Use FreeBSD's baudrate definitions from the interface pointer.
  
  Sponsored by:	Isilon Systems, iX Systems, and Panasas.

Modified:
  projects/ofed/head/sys/ofed/include/rdma/ib_addr.h

Modified: projects/ofed/head/sys/ofed/include/rdma/ib_addr.h
==============================================================================
--- projects/ofed/head/sys/ofed/include/rdma/ib_addr.h	Fri Aug 13 03:04:40 2010	(r211255)
+++ projects/ofed/head/sys/ofed/include/rdma/ib_addr.h	Fri Aug 13 03:05:26 2010	(r211256)
@@ -151,16 +151,16 @@ static inline void iboe_mac_vlan_to_ll(u
 static inline void iboe_addr_get_sgid(struct rdma_dev_addr *dev_addr,
 					union ib_gid *gid)
 {
-	struct net_device *dev;
 	u16 vid = 0;
+#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
+	struct net_device *dev;
 
 	dev = dev_get_by_index(&init_net, dev_addr->bound_dev_if);
 	if (dev) {
-#if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
 		vid = vlan_dev_vlan_id(dev);
-#endif
 		dev_put(dev);
 	}
+#endif
 
 	iboe_mac_vlan_to_ll(gid, dev_addr->src_dev_addr, vid);
 }
@@ -212,6 +212,7 @@ static inline enum ib_mtu iboe_get_mtu(i
 		return 0;
 }
 
+#ifdef __linux__
 static inline int iboe_get_rate(struct net_device *dev)
 {
 	struct ethtool_cmd cmd;
@@ -231,6 +232,21 @@ static inline int iboe_get_rate(struct n
 	else
 		return IB_RATE_PORT_CURRENT;
 }
+#else
+static inline int iboe_get_rate(struct net_device *dev)
+{
+	if (dev->if_baudrate >= IF_Gbps(40ULL))
+		return IB_RATE_40_GBPS;
+	else if (dev->if_baudrate >= IF_Gbps(30ULL))
+		return IB_RATE_30_GBPS;
+	else if (dev->if_baudrate >= IF_Gbps(20ULL))
+		return IB_RATE_20_GBPS;
+	else if (dev->if_baudrate >= IF_Gbps(10ULL))
+		return IB_RATE_10_GBPS;
+	else
+		return IB_RATE_PORT_CURRENT;
+}
+#endif
 
 static inline int rdma_link_local_addr(struct in6_addr *addr)
 {



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