Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Oct 2019 08:55:30 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r353632 - head/sys/ofed/drivers/infiniband/core
Message-ID:  <201910160855.x9G8tUJO065505@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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) {



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