device_create() is race-prone, so use the race-free
device_create_drvdata() instead as device_create() is going away.
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
                        err = PTR_ERR(ppp_class);
                        goto out_chrdev;
                }
-               device_create(ppp_class, NULL, MKDEV(PPP_MAJOR, 0), "ppp");
+               device_create_drvdata(ppp_class, NULL, MKDEV(PPP_MAJOR, 0),
+                                     NULL, "ppp");
        }
 
 out:
 
                err = PTR_ERR(cosa_class);
                goto out_chrdev;
        }
-       for (i=0; i<nr_cards; i++) {
-               device_create(cosa_class, NULL, MKDEV(cosa_major, i), "cosa%d", i);
-       }
+       for (i = 0; i < nr_cards; i++)
+               device_create_drvdata(cosa_class, NULL, MKDEV(cosa_major, i),
+                                     NULL, "cosa%d", i);
        err = 0;
        goto out;