Merge branch 'fix/hda' into for-linus
[safe/jmp/linux-2.6] / drivers / firmware / efivars.c
index b61a72f..2a62ec6 100644 (file)
@@ -77,6 +77,7 @@
 #include <linux/sysfs.h>
 #include <linux/kobject.h>
 #include <linux/device.h>
+#include <linux/slab.h>
 
 #include <asm/uaccess.h>
 
@@ -362,7 +363,7 @@ static ssize_t efivar_attr_store(struct kobject *kobj, struct attribute *attr,
        return ret;
 }
 
-static struct sysfs_ops efivar_attr_ops = {
+static const struct sysfs_ops efivar_attr_ops = {
        .show = efivar_attr_show,
        .store = efivar_attr_store,
 };
@@ -397,11 +398,11 @@ static struct kobj_type efivar_ktype = {
 static inline void
 efivar_unregister(struct efivar_entry *var)
 {
-       kobject_unregister(&var->kobj);
+       kobject_put(&var->kobj);
 }
 
 
-static ssize_t efivar_create(struct kobject *kobj,
+static ssize_t efivar_create(struct file *filp, struct kobject *kobj,
                             struct bin_attribute *bin_attr,
                             char *buf, loff_t pos, size_t count)
 {
@@ -460,7 +461,7 @@ static ssize_t efivar_create(struct kobject *kobj,
        return count;
 }
 
-static ssize_t efivar_delete(struct kobject *kobj,
+static ssize_t efivar_delete(struct file *filp, struct kobject *kobj,
                             struct bin_attribute *bin_attr,
                             char *buf, loff_t pos, size_t count)
 {
@@ -732,7 +733,7 @@ efivars_init(void)
        kset_unregister(vars_kset);
 
 out_firmware_unregister:
-       kobject_unregister(efi_kobj);
+       kobject_put(efi_kobj);
 
 out_free:
        kfree(variable_name);
@@ -753,7 +754,7 @@ efivars_exit(void)
        }
 
        kset_unregister(vars_kset);
-       kobject_unregister(efi_kobj);
+       kobject_put(efi_kobj);
 }
 
 module_init(efivars_init);