diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index c8179fc..b97694f 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -855,7 +855,7 @@
 {
 	int rc;
 
-	ipl_kset = kset_create_and_add("ipl", NULL, &firmware_kset->kobj);
+	ipl_kset = kset_create_and_add("ipl", NULL, firmware_kobj);
 	if (!ipl_kset)
 		return -ENOMEM;
 	switch (ipl_info.type) {
@@ -974,7 +974,7 @@
 {
 	int rc;
 
-	reipl_kset = kset_create_and_add("reipl", NULL, &firmware_kset->kobj);
+	reipl_kset = kset_create_and_add("reipl", NULL, firmware_kobj);
 	if (!reipl_kset)
 		return -ENOMEM;
 	rc = sysfs_create_file(&reipl_kset->kobj, &reipl_type_attr.attr);
@@ -1063,7 +1063,7 @@
 {
 	int rc;
 
-	dump_kset = kset_create_and_add("dump", NULL, &firmware_kset->kobj);
+	dump_kset = kset_create_and_add("dump", NULL, firmware_kobj);
 	if (!dump_kset)
 		return -ENOMEM;
 	rc = sysfs_create_file(&dump_kset->kobj, &dump_type_attr);
@@ -1086,7 +1086,7 @@
 	int rc;
 
 	shutdown_actions_kset = kset_create_and_add("shutdown_actions", NULL,
-						    &firmware_kset->kobj);
+						    firmware_kobj);
 	if (!shutdown_actions_kset)
 		return -ENOMEM;
 	rc = sysfs_create_file(&shutdown_actions_kset->kobj, &on_panic_attr);
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index e550da6..1b4cf98 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -755,7 +755,7 @@
 		return -ENODEV;
 	}
 
-	acpi_kobj = kobject_create_and_add("acpi", &firmware_kset->kobj);
+	acpi_kobj = kobject_create_and_add("acpi", firmware_kobj);
 	if (!acpi_kobj) {
 		printk(KERN_WARNING "%s: kset create error\n", __FUNCTION__);
 		acpi_kobj = NULL;
diff --git a/drivers/base/firmware.c b/drivers/base/firmware.c
index 9efff48..1138155 100644
--- a/drivers/base/firmware.c
+++ b/drivers/base/firmware.c
@@ -15,13 +15,13 @@
 
 #include "base.h"
 
-struct kset *firmware_kset;
-EXPORT_SYMBOL_GPL(firmware_kset);
+struct kobject *firmware_kobj;
+EXPORT_SYMBOL_GPL(firmware_kobj);
 
 int __init firmware_init(void)
 {
-	firmware_kset = kset_create_and_add("firmware", NULL, NULL);
-	if (!firmware_kset)
+	firmware_kobj = kobject_create_and_add("firmware", NULL);
+	if (!firmware_kobj)
 		return -ENOMEM;
 	return 0;
 }
diff --git a/drivers/firmware/edd.c b/drivers/firmware/edd.c
index f07f370..ddcc957 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -756,7 +756,7 @@
 		return 1;
 	}
 
-	edd_kset = kset_create_and_add("edd", NULL, &firmware_kset->kobj);
+	edd_kset = kset_create_and_add("edd", NULL, firmware_kobj);
 	if (!edd_kset)
 		return -ENOMEM;
 
diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c
index e17cd81..d1ad481 100644
--- a/drivers/firmware/efivars.c
+++ b/drivers/firmware/efivars.c
@@ -668,7 +668,7 @@
 	/*
 	 * For now we'll register the efi subsys within this driver
 	 */
-	efi_kset = kset_create_and_add("efi", NULL, &firmware_kset->kobj);
+	efi_kset = kset_create_and_add("efi", NULL, firmware_kobj);
 	if (!efi_kset) {
 		printk(KERN_ERR "efivars: Firmware registration failed.\n");
 		error = -ENOMEM;
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c
index 4444834..ef1a353 100644
--- a/drivers/parisc/pdc_stable.c
+++ b/drivers/parisc/pdc_stable.c
@@ -1059,7 +1059,7 @@
 	pdcs_osid = (u16)(result >> 16);
 
 	/* For now we'll register the stable kset within this driver */
-	stable_kset = kset_create_and_add("stable", NULL, &firmware_kset->kobj);
+	stable_kset = kset_create_and_add("stable", NULL, firmware_kobj);
 	if (!stable_kset) {
 		rc = -ENOMEM;
 		goto fail_firmreg;
diff --git a/include/linux/kobject.h b/include/linux/kobject.h
index 29841bb..673623f 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -210,8 +210,8 @@
 extern struct kobject *hypervisor_kobj;
 /* The global /sys/power/ kset for people to chain off of */
 extern struct kset *power_kset;
-/* The global /sys/firmware/ kset for people to chain off of */
-extern struct kset *firmware_kset;
+/* The global /sys/firmware/ kobject for people to chain off of */
+extern struct kobject *firmware_kobj;
 
 extern int __must_check subsystem_register(struct kset *);
 extern void subsystem_unregister(struct kset *);
