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
This commit is contained in:
parent
be5c019762
commit
42fa341d9c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=330492
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user