IB: convert struct class_device to struct device
[cascardo/linux.git] / drivers / infiniband / core / ucm.c
index 4291ab4..d7a6881 100644 (file)
@@ -58,8 +58,8 @@ MODULE_LICENSE("Dual BSD/GPL");
 
 struct ib_ucm_device {
        int                     devnum;
-       struct cdev             dev;
-       struct class_device     class_dev;
+       struct cdev             cdev;
+       struct device           dev;
        struct ib_device        *ib_dev;
 };
 
@@ -1171,7 +1171,7 @@ static int ib_ucm_open(struct inode *inode, struct file *filp)
 
        filp->private_data = file;
        file->filp = filp;
-       file->device = container_of(inode->i_cdev, struct ib_ucm_device, dev);
+       file->device = container_of(inode->i_cdev, struct ib_ucm_device, cdev);
 
        return 0;
 }
@@ -1202,14 +1202,14 @@ static int ib_ucm_close(struct inode *inode, struct file *filp)
        return 0;
 }
 
-static void ucm_release_class_dev(struct class_device *class_dev)
+static void ib_ucm_release_dev(struct device *dev)
 {
-       struct ib_ucm_device *dev;
+       struct ib_ucm_device *ucm_dev;
 
-       dev = container_of(class_dev, struct ib_ucm_device, class_dev);
-       cdev_del(&dev->dev);
-       clear_bit(dev->devnum, dev_map);
-       kfree(dev);
+       ucm_dev = container_of(dev, struct ib_ucm_device, dev);
+       cdev_del(&ucm_dev->cdev);
+       clear_bit(ucm_dev->devnum, dev_map);
+       kfree(ucm_dev);
 }
 
 static const struct file_operations ucm_fops = {
@@ -1220,14 +1220,15 @@ static const struct file_operations ucm_fops = {
        .poll    = ib_ucm_poll,
 };
 
-static ssize_t show_ibdev(struct class_device *class_dev, char *buf)
+static ssize_t show_ibdev(struct device *dev, struct device_attribute *attr,
+                         char *buf)
 {
-       struct ib_ucm_device *dev;
+       struct ib_ucm_device *ucm_dev;
 
-       dev = container_of(class_dev, struct ib_ucm_device, class_dev);
-       return sprintf(buf, "%s\n", dev->ib_dev->name);
+       ucm_dev = container_of(dev, struct ib_ucm_device, dev);
+       return sprintf(buf, "%s\n", ucm_dev->ib_dev->name);
 }
-static CLASS_DEVICE_ATTR(ibdev, S_IRUGO, show_ibdev, NULL);
+static DEVICE_ATTR(ibdev, S_IRUGO, show_ibdev, NULL);
 
 static void ib_ucm_add_one(struct ib_device *device)
 {
@@ -1249,32 +1250,31 @@ static void ib_ucm_add_one(struct ib_device *device)
 
        set_bit(ucm_dev->devnum, dev_map);
 
-       cdev_init(&ucm_dev->dev, &ucm_fops);
-       ucm_dev->dev.owner = THIS_MODULE;
-       kobject_set_name(&ucm_dev->dev.kobj, "ucm%d", ucm_dev->devnum);
-       if (cdev_add(&ucm_dev->dev, IB_UCM_BASE_DEV + ucm_dev->devnum, 1))
+       cdev_init(&ucm_dev->cdev, &ucm_fops);
+       ucm_dev->cdev.owner = THIS_MODULE;
+       kobject_set_name(&ucm_dev->cdev.kobj, "ucm%d", ucm_dev->devnum);
+       if (cdev_add(&ucm_dev->cdev, IB_UCM_BASE_DEV + ucm_dev->devnum, 1))
                goto err;
 
-       ucm_dev->class_dev.class = &cm_class;
-       ucm_dev->class_dev.dev = device->dma_device;
-       ucm_dev->class_dev.devt = ucm_dev->dev.dev;
-       ucm_dev->class_dev.release = ucm_release_class_dev;
-       snprintf(ucm_dev->class_dev.class_id, BUS_ID_SIZE, "ucm%d",
+       ucm_dev->dev.class = &cm_class;
+       ucm_dev->dev.parent = device->dma_device;
+       ucm_dev->dev.devt = ucm_dev->cdev.dev;
+       ucm_dev->dev.release = ib_ucm_release_dev;
+       snprintf(ucm_dev->dev.bus_id, BUS_ID_SIZE, "ucm%d",
                 ucm_dev->devnum);
-       if (class_device_register(&ucm_dev->class_dev))
+       if (device_register(&ucm_dev->dev))
                goto err_cdev;
 
-       if (class_device_create_file(&ucm_dev->class_dev,
-                                    &class_device_attr_ibdev))
-               goto err_class;
+       if (device_create_file(&ucm_dev->dev, &dev_attr_ibdev))
+               goto err_dev;
 
        ib_set_client_data(device, &ucm_client, ucm_dev);
        return;
 
-err_class:
-       class_device_unregister(&ucm_dev->class_dev);
+err_dev:
+       device_unregister(&ucm_dev->dev);
 err_cdev:
-       cdev_del(&ucm_dev->dev);
+       cdev_del(&ucm_dev->cdev);
        clear_bit(ucm_dev->devnum, dev_map);
 err:
        kfree(ucm_dev);
@@ -1288,7 +1288,7 @@ static void ib_ucm_remove_one(struct ib_device *device)
        if (!ucm_dev)
                return;
 
-       class_device_unregister(&ucm_dev->class_dev);
+       device_unregister(&ucm_dev->dev);
 }
 
 static ssize_t show_abi_version(struct class *class, char *buf)