class_unregister(&uverbs_class); 
class_destroy(uverbs_class); 
static int __init ib_uverbs_init(void){	int ret;	spin_lock_init(&map_lock);	ret = register_chrdev_region(IB_UVERBS_BASE_DEV, IB_UVERBS_MAX_DEVICES,				     "infiniband_verbs");	if (ret) {		printk(KERN_ERR "user_verbs: couldn't register device number\n");		goto out;	}	ret = class_register(&uverbs_class);	if (ret) {		printk(KERN_ERR "user_verbs: couldn't create class infiniband_verbs\n");		goto out_chrdev;	}	ret = class_create_file(&uverbs_class, &class_attr_abi_version);	if (ret) {		printk(KERN_ERR "user_verbs: couldn't create abi_version attribute\n");		goto out_class;	}	ret = register_filesystem(&uverbs_event_fs);	if (ret) {		printk(KERN_ERR "user_verbs: couldn't register infinibandeventfs\n");		goto out_class;	}	uverbs_event_mnt = kern_mount(&uverbs_event_fs);	if (IS_ERR(uverbs_event_mnt)) {		ret = PTR_ERR(uverbs_event_mnt);		printk(KERN_ERR "user_verbs: couldn't mount infinibandeventfs\n");		goto out_fs;	}	ret = ib_register_client(&uverbs_client);	if (ret) {		printk(KERN_ERR "user_verbs: couldn't register client\n");		goto out_mnt;	}	return 0;out_mnt:	mntput(uverbs_event_mnt);out_fs:	unregister_filesystem(&uverbs_event_fs);out_class:	class_unregister(&uverbs_class);out_chrdev:	unregister_chrdev_region(IB_UVERBS_BASE_DEV, IB_UVERBS_MAX_DEVICES);out:	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/70a30e16a8a9d22396a4d1e96af86e43594df584/uverbs_main.c/clean/drivers/infiniband/core/uverbs_main.c