svn commit: r353632 - head/sys/ofed/drivers/infiniband/core

Hans Petter Selasky hselasky at FreeBSD.org
Wed Oct 16 08:55:30 UTC 2019


Author: hselasky
Date: Wed Oct 16 08:55:29 2019
New Revision: 353632
URL: https://svnweb.freebsd.org/changeset/base/353632

Log:
  Replace rdma_is_upper_dev_rcu() with rdma_vlan_dev_real_dev() in ibcore.
  This reduces the number of references to VLAN_TRUNKDEV() in ibcore.
  Currently only VLAN is supported as a child interface in FreeBSD.
  Remove superfluous RCU locking.
  
  Sponsored by:	Mellanox Technologies

Modified:
  head/sys/ofed/drivers/infiniband/core/core_priv.h
  head/sys/ofed/drivers/infiniband/core/ib_sa_query.c

Modified: head/sys/ofed/drivers/infiniband/core/core_priv.h
==============================================================================
--- head/sys/ofed/drivers/infiniband/core/core_priv.h	Wed Oct 16 08:40:58 2019	(r353631)
+++ head/sys/ofed/drivers/infiniband/core/core_priv.h	Wed Oct 16 08:55:29 2019	(r353632)
@@ -128,16 +128,6 @@ int ib_cache_setup_one(struct ib_device *device);
 void ib_cache_cleanup_one(struct ib_device *device);
 void ib_cache_release_one(struct ib_device *device);
 
-static inline bool rdma_is_upper_dev_rcu(struct net_device *dev,
-					 struct net_device *upper)
-{
-
-	/* TODO: add support for LAGG */
-	upper = VLAN_TRUNKDEV(upper);
-
-	return (dev == upper);
-}
-
 int addr_init(void);
 void addr_cleanup(void);
 

Modified: head/sys/ofed/drivers/infiniband/core/ib_sa_query.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/core/ib_sa_query.c	Wed Oct 16 08:40:58 2019	(r353631)
+++ head/sys/ofed/drivers/infiniband/core/ib_sa_query.c	Wed Oct 16 08:55:29 2019	(r353632)
@@ -702,12 +702,10 @@ int ib_init_ah_from_path(struct ib_device *device, u8 
 			return -ENODEV;
 		}
 		ndev = ib_get_ndev_from_path(rec);
-		rcu_read_lock();
 		if ((ndev && ndev != resolved_dev) ||
 		    (resolved_dev != idev &&
-		     !rdma_is_upper_dev_rcu(idev, resolved_dev)))
+		     rdma_vlan_dev_real_dev(resolved_dev) != idev))
 			ret = -EHOSTUNREACH;
-		rcu_read_unlock();
 		dev_put(idev);
 		dev_put(resolved_dev);
 		if (ret) {


More information about the svn-src-all mailing list