|
@@ -427,17 +427,17 @@ static struct kobj_type port_type = {
|
|
|
.default_attrs = port_default_attrs
|
|
|
};
|
|
|
|
|
|
-static void ib_device_release(struct class_device *cdev)
|
|
|
+static void ib_device_release(struct device *device)
|
|
|
{
|
|
|
- struct ib_device *dev = container_of(cdev, struct ib_device, class_dev);
|
|
|
+ struct ib_device *dev = container_of(device, struct ib_device, dev);
|
|
|
|
|
|
kfree(dev);
|
|
|
}
|
|
|
|
|
|
-static int ib_device_uevent(struct class_device *cdev,
|
|
|
+static int ib_device_uevent(struct device *device,
|
|
|
struct kobj_uevent_env *env)
|
|
|
{
|
|
|
- struct ib_device *dev = container_of(cdev, struct ib_device, class_dev);
|
|
|
+ struct ib_device *dev = container_of(device, struct ib_device, dev);
|
|
|
|
|
|
if (add_uevent_var(env, "NAME=%s", dev->name))
|
|
|
return -ENOMEM;
|
|
@@ -567,9 +567,10 @@ err_put:
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
-static ssize_t show_node_type(struct class_device *cdev, char *buf)
|
|
|
+static ssize_t show_node_type(struct device *device,
|
|
|
+ struct device_attribute *attr, char *buf)
|
|
|
{
|
|
|
- struct ib_device *dev = container_of(cdev, struct ib_device, class_dev);
|
|
|
+ struct ib_device *dev = container_of(device, struct ib_device, dev);
|
|
|
|
|
|
if (!ibdev_is_alive(dev))
|
|
|
return -ENODEV;
|
|
@@ -583,9 +584,10 @@ static ssize_t show_node_type(struct class_device *cdev, char *buf)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-static ssize_t show_sys_image_guid(struct class_device *cdev, char *buf)
|
|
|
+static ssize_t show_sys_image_guid(struct device *device,
|
|
|
+ struct device_attribute *dev_attr, char *buf)
|
|
|
{
|
|
|
- struct ib_device *dev = container_of(cdev, struct ib_device, class_dev);
|
|
|
+ struct ib_device *dev = container_of(device, struct ib_device, dev);
|
|
|
struct ib_device_attr attr;
|
|
|
ssize_t ret;
|
|
|
|
|
@@ -603,9 +605,10 @@ static ssize_t show_sys_image_guid(struct class_device *cdev, char *buf)
|
|
|
be16_to_cpu(((__be16 *) &attr.sys_image_guid)[3]));
|
|
|
}
|
|
|
|
|
|
-static ssize_t show_node_guid(struct class_device *cdev, char *buf)
|
|
|
+static ssize_t show_node_guid(struct device *device,
|
|
|
+ struct device_attribute *attr, char *buf)
|
|
|
{
|
|
|
- struct ib_device *dev = container_of(cdev, struct ib_device, class_dev);
|
|
|
+ struct ib_device *dev = container_of(device, struct ib_device, dev);
|
|
|
|
|
|
if (!ibdev_is_alive(dev))
|
|
|
return -ENODEV;
|
|
@@ -617,17 +620,19 @@ static ssize_t show_node_guid(struct class_device *cdev, char *buf)
|
|
|
be16_to_cpu(((__be16 *) &dev->node_guid)[3]));
|
|
|
}
|
|
|
|
|
|
-static ssize_t show_node_desc(struct class_device *cdev, char *buf)
|
|
|
+static ssize_t show_node_desc(struct device *device,
|
|
|
+ struct device_attribute *attr, char *buf)
|
|
|
{
|
|
|
- struct ib_device *dev = container_of(cdev, struct ib_device, class_dev);
|
|
|
+ struct ib_device *dev = container_of(device, struct ib_device, dev);
|
|
|
|
|
|
return sprintf(buf, "%.64s\n", dev->node_desc);
|
|
|
}
|
|
|
|
|
|
-static ssize_t set_node_desc(struct class_device *cdev, const char *buf,
|
|
|
- size_t count)
|
|
|
+static ssize_t set_node_desc(struct device *device,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ const char *buf, size_t count)
|
|
|
{
|
|
|
- struct ib_device *dev = container_of(cdev, struct ib_device, class_dev);
|
|
|
+ struct ib_device *dev = container_of(device, struct ib_device, dev);
|
|
|
struct ib_device_modify desc = {};
|
|
|
int ret;
|
|
|
|
|
@@ -642,44 +647,43 @@ static ssize_t set_node_desc(struct class_device *cdev, const char *buf,
|
|
|
return count;
|
|
|
}
|
|
|
|
|
|
-static CLASS_DEVICE_ATTR(node_type, S_IRUGO, show_node_type, NULL);
|
|
|
-static CLASS_DEVICE_ATTR(sys_image_guid, S_IRUGO, show_sys_image_guid, NULL);
|
|
|
-static CLASS_DEVICE_ATTR(node_guid, S_IRUGO, show_node_guid, NULL);
|
|
|
-static CLASS_DEVICE_ATTR(node_desc, S_IRUGO | S_IWUSR, show_node_desc,
|
|
|
- set_node_desc);
|
|
|
-
|
|
|
-static struct class_device_attribute *ib_class_attributes[] = {
|
|
|
- &class_device_attr_node_type,
|
|
|
- &class_device_attr_sys_image_guid,
|
|
|
- &class_device_attr_node_guid,
|
|
|
- &class_device_attr_node_desc
|
|
|
+static DEVICE_ATTR(node_type, S_IRUGO, show_node_type, NULL);
|
|
|
+static DEVICE_ATTR(sys_image_guid, S_IRUGO, show_sys_image_guid, NULL);
|
|
|
+static DEVICE_ATTR(node_guid, S_IRUGO, show_node_guid, NULL);
|
|
|
+static DEVICE_ATTR(node_desc, S_IRUGO | S_IWUSR, show_node_desc, set_node_desc);
|
|
|
+
|
|
|
+static struct device_attribute *ib_class_attributes[] = {
|
|
|
+ &dev_attr_node_type,
|
|
|
+ &dev_attr_sys_image_guid,
|
|
|
+ &dev_attr_node_guid,
|
|
|
+ &dev_attr_node_desc
|
|
|
};
|
|
|
|
|
|
static struct class ib_class = {
|
|
|
.name = "infiniband",
|
|
|
- .release = ib_device_release,
|
|
|
- .uevent = ib_device_uevent,
|
|
|
+ .dev_release = ib_device_release,
|
|
|
+ .dev_uevent = ib_device_uevent,
|
|
|
};
|
|
|
|
|
|
int ib_device_register_sysfs(struct ib_device *device)
|
|
|
{
|
|
|
- struct class_device *class_dev = &device->class_dev;
|
|
|
+ struct device *class_dev = &device->dev;
|
|
|
int ret;
|
|
|
int i;
|
|
|
|
|
|
class_dev->class = &ib_class;
|
|
|
- class_dev->class_data = device;
|
|
|
- class_dev->dev = device->dma_device;
|
|
|
- strlcpy(class_dev->class_id, device->name, BUS_ID_SIZE);
|
|
|
+ class_dev->driver_data = device;
|
|
|
+ class_dev->parent = device->dma_device;
|
|
|
+ strlcpy(class_dev->bus_id, device->name, BUS_ID_SIZE);
|
|
|
|
|
|
INIT_LIST_HEAD(&device->port_list);
|
|
|
|
|
|
- ret = class_device_register(class_dev);
|
|
|
+ ret = device_register(class_dev);
|
|
|
if (ret)
|
|
|
goto err;
|
|
|
|
|
|
for (i = 0; i < ARRAY_SIZE(ib_class_attributes); ++i) {
|
|
|
- ret = class_device_create_file(class_dev, ib_class_attributes[i]);
|
|
|
+ ret = device_create_file(class_dev, ib_class_attributes[i]);
|
|
|
if (ret)
|
|
|
goto err_unregister;
|
|
|
}
|
|
@@ -723,7 +727,7 @@ err_put:
|
|
|
kobject_put(&class_dev->kobj);
|
|
|
|
|
|
err_unregister:
|
|
|
- class_device_unregister(class_dev);
|
|
|
+ device_unregister(class_dev);
|
|
|
|
|
|
err:
|
|
|
return ret;
|
|
@@ -744,7 +748,7 @@ void ib_device_unregister_sysfs(struct ib_device *device)
|
|
|
}
|
|
|
|
|
|
kobject_put(device->ports_parent);
|
|
|
- class_device_unregister(&device->class_dev);
|
|
|
+ device_unregister(&device->dev);
|
|
|
}
|
|
|
|
|
|
int ib_sysfs_setup(void)
|