]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/ch.c
delkin_cb: set proper hwif->gendev.parent value
[linux-2.6-omap-h63xx.git] / drivers / scsi / ch.c
index 92d1cb1b21cb1d419043f24dc557799014978b33..c4b938bc30d393f92eebaaf9c506009885f50176 100644 (file)
@@ -881,7 +881,7 @@ static long ch_ioctl_compat(struct file * file,
 static int ch_probe(struct device *dev)
 {
        struct scsi_device *sd = to_scsi_device(dev);
-       struct class_device *class_dev;
+       struct device *class_dev;
        int minor, ret = -ENOMEM;
        scsi_changer *ch;
 
@@ -910,11 +910,11 @@ static int ch_probe(struct device *dev)
        ch->minor = minor;
        sprintf(ch->name,"ch%d",ch->minor);
 
-       class_dev = class_device_create(ch_sysfs_class, NULL,
-                                       MKDEV(SCSI_CHANGER_MAJOR, ch->minor),
-                                       dev, "s%s", ch->name);
+       class_dev = device_create_drvdata(ch_sysfs_class, dev,
+                                         MKDEV(SCSI_CHANGER_MAJOR, ch->minor),
+                                         ch, "s%s", ch->name);
        if (IS_ERR(class_dev)) {
-               printk(KERN_WARNING "ch%d: class_device_create failed\n",
+               printk(KERN_WARNING "ch%d: device_create failed\n",
                       ch->minor);
                ret = PTR_ERR(class_dev);
                goto remove_idr;
@@ -926,7 +926,6 @@ static int ch_probe(struct device *dev)
        if (init)
                ch_init_elem(ch);
 
-       dev_set_drvdata(dev, ch);
        sdev_printk(KERN_INFO, sd, "Attached scsi changer %s\n", ch->name);
 
        return 0;
@@ -945,8 +944,7 @@ static int ch_remove(struct device *dev)
        idr_remove(&ch_index_idr, ch->minor);
        spin_unlock(&ch_index_lock);
 
-       class_device_destroy(ch_sysfs_class,
-                            MKDEV(SCSI_CHANGER_MAJOR,ch->minor));
+       device_destroy(ch_sysfs_class, MKDEV(SCSI_CHANGER_MAJOR,ch->minor));
        kfree(ch->dt);
        kfree(ch);
        return 0;