class_simple_destroy(ppdev_class); 
class_destroy(ppdev_class); 
static int __init ppdev_init (void){	int i, err = 0;	if (register_chrdev (PP_MAJOR, CHRDEV, &pp_fops)) {		printk (KERN_WARNING CHRDEV ": unable to get major %d\n",			PP_MAJOR);		return -EIO;	}	ppdev_class = class_simple_create(THIS_MODULE, CHRDEV);	if (IS_ERR(ppdev_class)) {		err = PTR_ERR(ppdev_class);		goto out_chrdev;	}	devfs_mk_dir("parports");	for (i = 0; i < PARPORT_MAX; i++) {		devfs_mk_cdev(MKDEV(PP_MAJOR, i),				S_IFCHR | S_IRUGO | S_IWUGO, "parports/%d", i);	}	if (parport_register_driver(&pp_driver)) {		printk (KERN_WARNING CHRDEV ": unable to register with parport\n");		goto out_class;	}	printk (KERN_INFO PP_VERSION "\n");	goto out;out_class:	for (i = 0; i < PARPORT_MAX; i++)		devfs_remove("parports/%d", i);	devfs_remove("parports");	class_simple_destroy(ppdev_class);out_chrdev:	unregister_chrdev(PP_MAJOR, CHRDEV);out:	return err;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ca8eca6884861c1ce294b05aacfdf9045bba9aff/ppdev.c/buggy/drivers/char/ppdev.c