aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firmware
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-05-06 13:57:37 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-05-06 13:57:37 -0400
commit3d54ac9e35a69d19381420bb2fa1702d5bf73846 (patch)
tree7dd5ef57cfc4c7771ef5250abaef2072a69c8a3b /drivers/firmware
parentd8fce2db7220fc46067c825fc417fb295eac7d0a (diff)
parentc88d47480d300eaad80c213d50c9bf6077fc49bc (diff)
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Ingo Molnar: "EFI fixes, and FPU fix, a ticket spinlock boundary condition fix and two build fixes" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/fpu: Always restore_xinit_state() when use_eager_cpu() x86: Make cpu_tss available to external modules efi: Fix error handling in add_sysfs_runtime_map_entry() x86/spinlocks: Fix regression in spinlock contention detection x86/mm: Clean up types in xlate_dev_mem_ptr() x86/efi: Store upper bits of command line buffer address in ext_cmd_line_ptr efivarfs: Ensure VariableName is NUL-terminated
Diffstat (limited to 'drivers/firmware')
-rw-r--r--drivers/firmware/efi/runtime-map.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c
index 87b8e3b900d2..5c55227a34c8 100644
--- a/drivers/firmware/efi/runtime-map.c
+++ b/drivers/firmware/efi/runtime-map.c
@@ -120,7 +120,8 @@ add_sysfs_runtime_map_entry(struct kobject *kobj, int nr)
120 entry = kzalloc(sizeof(*entry), GFP_KERNEL); 120 entry = kzalloc(sizeof(*entry), GFP_KERNEL);
121 if (!entry) { 121 if (!entry) {
122 kset_unregister(map_kset); 122 kset_unregister(map_kset);
123 return entry; 123 map_kset = NULL;
124 return ERR_PTR(-ENOMEM);
124 } 125 }
125 126
126 memcpy(&entry->md, efi_runtime_map + nr * efi_memdesc_size, 127 memcpy(&entry->md, efi_runtime_map + nr * efi_memdesc_size,
@@ -132,6 +133,7 @@ add_sysfs_runtime_map_entry(struct kobject *kobj, int nr)
132 if (ret) { 133 if (ret) {
133 kobject_put(&entry->kobj); 134 kobject_put(&entry->kobj);
134 kset_unregister(map_kset); 135 kset_unregister(map_kset);
136 map_kset = NULL;
135 return ERR_PTR(ret); 137 return ERR_PTR(ret);
136 } 138 }
137 139
@@ -195,8 +197,6 @@ out_add_entry:
195 entry = *(map_entries + j); 197 entry = *(map_entries + j);
196 kobject_put(&entry->kobj); 198 kobject_put(&entry->kobj);
197 } 199 }
198 if (map_kset)
199 kset_unregister(map_kset);
200out: 200out:
201 return ret; 201 return ret;
202} 202}