class_device_create(pg_class, MKDEV(major, unit), 
class_device_create(pg_class, NULL, MKDEV(major, unit), 
static int __init pg_init(void){	int unit, err = 0;	if (disable){		err = -1;		goto out;	}	pg_init_units();	if (pg_detect()) {		err = -1;		goto out;	}	if (register_chrdev(major, name, &pg_fops)) {		printk("pg_init: unable to get major number %d\n", major);		for (unit = 0; unit < PG_UNITS; unit++) {			struct pg *dev = &devices[unit];			if (dev->present)				pi_release(dev->pi);		}		err = -1;		goto out;	}	pg_class = class_create(THIS_MODULE, "pg");	if (IS_ERR(pg_class)) {		err = PTR_ERR(pg_class);		goto out_chrdev;	}	devfs_mk_dir("pg");	for (unit = 0; unit < PG_UNITS; unit++) {		struct pg *dev = &devices[unit];		if (dev->present) {			class_device_create(pg_class, MKDEV(major, unit),					NULL, "pg%u", unit);			err = devfs_mk_cdev(MKDEV(major, unit),				      S_IFCHR | S_IRUSR | S_IWUSR, "pg/%u",				      unit);			if (err) 				goto out_class;		}	}	err = 0;	goto out;out_class:	class_device_destroy(pg_class, MKDEV(major, unit));	class_destroy(pg_class);out_chrdev:	unregister_chrdev(major, "pg");out:	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/53f4654272df7c51064825024340554b39c9efba/pg.c/buggy/drivers/block/paride/pg.c