Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d21943dd authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Doug Ledford
Browse files

RDMA/core: Implement IB device rename function



Generic implementation of IB device rename function.

Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent dbace111
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ int ib_device_register_sysfs(struct ib_device *device,
			      int (*port_callback)(struct ib_device *,
						   u8, struct kobject *));
void ib_device_unregister_sysfs(struct ib_device *device);
int ib_device_rename(struct ib_device *ibdev, const char *name);

typedef void (*roce_netdev_callback)(struct ib_device *device, u8 port,
	      struct net_device *idev, void *cookie);
+25 −0
Original line number Diff line number Diff line
@@ -171,6 +171,31 @@ static struct ib_device *__ib_device_get_by_name(const char *name)
	return NULL;
}

int ib_device_rename(struct ib_device *ibdev, const char *name)
{
	struct ib_device *device;
	int ret = 0;

	if (!strcmp(name, dev_name(&ibdev->dev)))
		return ret;

	mutex_lock(&device_mutex);
	list_for_each_entry(device, &device_list, core_list) {
		if (!strcmp(name, dev_name(&device->dev))) {
			ret = -EEXIST;
			goto out;
		}
	}

	ret = device_rename(&ibdev->dev, name);
	if (ret)
		goto out;
	strlcpy(ibdev->name, name, IB_DEVICE_NAME_MAX);
out:
	mutex_unlock(&device_mutex);
	return ret;
}

static int alloc_name(struct ib_device *ibdev, const char *name)
{
	unsigned long *inuse;