RE: [PATCH rdma-next v2 1/2] RDMA/core: Implement IB device rename function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>-----Original Message-----
>From: linux-rdma-owner@xxxxxxxxxxxxxxx [mailto:linux-rdma-
>owner@xxxxxxxxxxxxxxx] On Behalf Of Leon Romanovsky
>Sent: Wednesday, September 26, 2018 2:46 AM
>To: Doug Ledford <dledford@xxxxxxxxxx>; Jason Gunthorpe
><jgg@xxxxxxxxxxxx>
>Cc: Leon Romanovsky <leonro@xxxxxxxxxxxx>; RDMA mailing list <linux-
>rdma@xxxxxxxxxxxxxxx>
>Subject: [PATCH rdma-next v2 1/2] RDMA/core: Implement IB device rename
>function
>
>From: Leon Romanovsky <leonro@xxxxxxxxxxxx>
>
>Generic implementation of IB device rename function.
>
>Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
>---
> drivers/infiniband/core/core_priv.h |  1 +
> drivers/infiniband/core/device.c    | 25 +++++++++++++++++++++++++
> 2 files changed, 26 insertions(+)
>
>diff --git a/drivers/infiniband/core/core_priv.h
>b/drivers/infiniband/core/core_priv.h
>index f60c7b65aea9..bb9007a0cca7 100644
>--- a/drivers/infiniband/core/core_priv.h
>+++ b/drivers/infiniband/core/core_priv.h
>@@ -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);
>diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
>index d105b9b2d118..5e70f5e1cfd9 100644
>--- a/drivers/infiniband/core/device.c
>+++ b/drivers/infiniband/core/device.c
>@@ -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);

The comments for device_rename() say:

* Note: Don't call this function.

Is this a concern?

Mike

>+	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;
>--
>2.14.4




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux