diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index c8179fc30baaea7443331adf366ca81e6f70d573..b97694fa62ecb26377db4e3a5349e50e68042979 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -855,7 +855,7 @@ static int __init ipl_init(void)
 {
 	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 @@ static int __init reipl_init(void)
 {
 	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 @@ static int __init dump_init(void)
 {
 	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 @@ static int __init shutdown_actions_init(void)
 	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 e550da684a472716e2699a6ffb6244d8db3c7a14..1b4cf984b081d0f0a697d139d1df0c1d281fe31e 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -755,7 +755,7 @@ static int __init acpi_init(void)
 		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 9efff481f5dc4a50e0209ea15119596328fea017..11381555680943616bbc82a734f4e0e860ee5024 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 f07f37047cd1fdd1f733a55ae30b3a6bf482bd31..ddcc95793068308f5f3dbdbfef7749d5aa2371ac 100644
--- a/drivers/firmware/edd.c
+++ b/drivers/firmware/edd.c
@@ -756,7 +756,7 @@ edd_init(void)
 		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 e17cd8133548041d84b14db98e241572d4e2f051..d1ad48190afcfb3868e1b5f670541a7fc0f7e7a8 100644
--- a/drivers/firmware/efivars.c
+++ b/drivers/firmware/efivars.c
@@ -668,7 +668,7 @@ efivars_init(void)
 	/*
 	 * 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 444483405abf74ab6e795a542a171232af767043..ef1a353e554035b0834fb52f76bbb7113b54c56b 100644
--- a/drivers/parisc/pdc_stable.c
+++ b/drivers/parisc/pdc_stable.c
@@ -1059,7 +1059,7 @@ pdc_stable_init(void)
 	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 29841bb5badb248adebd74069fe05859da1ce85d..673623f18464ce4982b72020c507eaa4a873dfaa 100644
--- a/include/linux/kobject.h
+++ b/include/linux/kobject.h
@@ -210,8 +210,8 @@ extern struct kset *kernel_kset;
 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 *);