]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/src/main.c
Corrected incorrect check of class_device_create() return code validity.
[lincan.git] / lincan / src / main.c
index 1a868a72996e7770c0ede4819ba1814cdc93d280..92d7966055f650c4cbb1f2249ba85ee94d784b3a 100644 (file)
@@ -308,11 +308,16 @@ int init_module(void)
                                S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP,
                                &can_fops, (void*)objects_p[i]);
                    #else
+                     #if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,14))
                        this_dev=class_device_create(can_class, MKDEV(major, dev_minor), NULL,  "can%d", dev_minor);
-                       if(!this_dev){
+                     #else /* >= 2.6.15 */
+                       this_dev=class_device_create(can_class, NULL, MKDEV(major, dev_minor), NULL,  "can%d", dev_minor);
+                     #endif /* >= 2.6.15 */
+                       if(IS_ERR(this_dev)){
                                CANMSG("problem to create device \"can%d\" in the class \"can\"\n", dev_minor);
                        }else{
-                               this_dev->class_data=objects_p[i];
+                               /*this_dev->class_data=objects_p[i];*/
+                               class_set_devdata(this_dev,objects_p[i]);
                        }
                      #ifdef CONFIG_DEVFS_FS
                        devfs_mk_cdev(MKDEV(major, dev_minor), S_IFCHR | S_IRUGO | S_IWUGO, "can%d", dev_minor);