"index%1lu", i);
                if (unlikely(retval)) {
                        for (j = 0; j < i; j++) {
-                               kobject_unregister(
-                                       &(LEAF_KOBJECT_PTR(cpu,j)->kobj));
+                               kobject_put(&(LEAF_KOBJECT_PTR(cpu,j)->kobj));
                        }
-                       kobject_unregister(&all_cpu_cache_info[cpu].kobj);
+                       kobject_put(&all_cpu_cache_info[cpu].kobj);
                        cpu_cache_sysfs_exit(cpu);
                        break;
                }
        unsigned long i;
 
        for (i = 0; i < all_cpu_cache_info[cpu].num_cache_leaves; i++)
-               kobject_unregister(&(LEAF_KOBJECT_PTR(cpu,i)->kobj));
+               kobject_put(&(LEAF_KOBJECT_PTR(cpu,i)->kobj));
 
        if (all_cpu_cache_info[cpu].kobj.parent) {
-               kobject_unregister(&all_cpu_cache_info[cpu].kobj);
+               kobject_put(&all_cpu_cache_info[cpu].kobj);
                memset(&all_cpu_cache_info[cpu].kobj,
                        0,
                        sizeof(struct kobject));
 
        return 0;
 
 fail_filesystem:
-       kobject_unregister(s390_kobj);
+       kobject_put(s390_kobj);
 fail_sysfs:
        if (!MACHINE_IS_VM)
                hypfs_diag_exit();
        if (!MACHINE_IS_VM)
                hypfs_diag_exit();
        unregister_filesystem(&hypfs_type);
-       kobject_unregister(s390_kobj);
+       kobject_put(s390_kobj);
 }
 
 module_init(hypfs_init)
 
        unsigned int cpu = sysdev->id;
        struct kobject *kobj = sq_kobject[cpu];
 
-       kobject_unregister(kobj);
+       kobject_put(kobj);
        return 0;
 }
 
 
                                              "index%1lu", i);
                if (unlikely(retval)) {
                        for (j = 0; j < i; j++) {
-                               kobject_unregister(
-                                       &(INDEX_KOBJECT_PTR(cpu,j)->kobj));
+                               kobject_put(&(INDEX_KOBJECT_PTR(cpu,j)->kobj));
                        }
-                       kobject_unregister(cache_kobject[cpu]);
+                       kobject_put(cache_kobject[cpu]);
                        cpuid4_cache_sysfs_exit(cpu);
                        break;
                }
        cpu_clear(cpu, cache_dev_map);
 
        for (i = 0; i < num_cache_leaves; i++)
-               kobject_unregister(&(INDEX_KOBJECT_PTR(cpu,i)->kobj));
-       kobject_unregister(cache_kobject[cpu]);
+               kobject_put(&(INDEX_KOBJECT_PTR(cpu,i)->kobj));
+       kobject_put(cache_kobject[cpu]);
        cpuid4_cache_sysfs_exit(cpu);
 }
 
 
 
 out_free:
        if (b) {
-               kobject_unregister(&b->kobj);
+               kobject_put(&b->kobj);
                kfree(b);
        }
        return err;
                return;
 
        list_for_each_entry_safe(pos, tmp, &head->blocks->miscj, miscj) {
-               kobject_unregister(&pos->kobj);
+               kobject_put(&pos->kobj);
                list_del(&pos->miscj);
                kfree(pos);
        }
        deallocate_threshold_block(cpu, bank);
 
 free_out:
-       kobject_unregister(b->kobj);
+       kobject_put(b->kobj);
        kfree(b);
        per_cpu(threshold_banks, cpu)[bank] = NULL;
 }