From 42fa341d9c8a76f6b5258c8b38976fa73d940475 Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Mon, 5 Mar 2018 11:55:29 +0000 Subject: [PATCH] Add support for IPv6 link local GIDs equal to the default GID for VLANs in ibcore. IPv6 link local addresses are usually derived from the netdev MAC address. This is applicable to VLAN devices and its lower netdevice as well. In such cases the IPv6 link local address is a duplicate of the default GID. Now that link local IPv6 addresses based GIDs are supported, allow adding such GID entries in the GID table. MFC after: 1 week Sponsored by: Mellanox Technologies --- sys/ofed/drivers/infiniband/core/ib_cache.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/sys/ofed/drivers/infiniband/core/ib_cache.c b/sys/ofed/drivers/infiniband/core/ib_cache.c index 87fa0aa3c91..6bb52019b8e 100644 --- a/sys/ofed/drivers/infiniband/core/ib_cache.c +++ b/sys/ofed/drivers/infiniband/core/ib_cache.c @@ -336,7 +336,6 @@ int ib_cache_gid_add(struct ib_device *ib_dev, u8 port, struct ib_gid_table *table; int ix; int ret = 0; - struct net_device *idev; int empty; table = ports_table[port - rdma_start_port(ib_dev)]; @@ -344,22 +343,6 @@ int ib_cache_gid_add(struct ib_device *ib_dev, u8 port, if (!memcmp(gid, &zgid, sizeof(*gid))) return -EINVAL; - if (ib_dev->get_netdev) { - idev = ib_dev->get_netdev(ib_dev, port); - if (idev && attr->ndev != idev) { - union ib_gid default_gid; - - /* Adding default GIDs in not permitted */ - make_default_gid(idev, &default_gid); - if (!memcmp(gid, &default_gid, sizeof(*gid))) { - dev_put(idev); - return -EPERM; - } - } - if (idev) - dev_put(idev); - } - mutex_lock(&table->lock); write_lock_irq(&table->rwlock);