diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2011-01-06 10:56:51 -0500 |
---|---|---|
committer | Borislav Petkov <borislav.petkov@amd.com> | 2011-02-09 10:05:31 -0500 |
commit | 6c53cbfced048c421e4f72cb2183465f68fbc5e7 (patch) | |
tree | e7d5529cf13e06d5e488aab6237eec37d01a0c94 | |
parent | 100b33c8bd8a3235fd0b7948338d6cbb3db3c63d (diff) |
x86, microcode: Correct sysdev_add error path
When we encounter an error while initting the microcode driver on a CPU,
we must undo the previously added sysfs group.
Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Acked-by: Andreas Herrmann <Andreas.Herrmann3@amd.com>
-rw-r--r-- | arch/x86/kernel/microcode_core.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c index 1cca374a2bac..87af68e0e1e1 100644 --- a/arch/x86/kernel/microcode_core.c +++ b/arch/x86/kernel/microcode_core.c | |||
@@ -417,8 +417,10 @@ static int mc_sysdev_add(struct sys_device *sys_dev) | |||
417 | if (err) | 417 | if (err) |
418 | return err; | 418 | return err; |
419 | 419 | ||
420 | if (microcode_init_cpu(cpu) == UCODE_ERROR) | 420 | if (microcode_init_cpu(cpu) == UCODE_ERROR) { |
421 | err = -EINVAL; | 421 | sysfs_remove_group(&sys_dev->kobj, &mc_attr_group); |
422 | return -EINVAL; | ||
423 | } | ||
422 | 424 | ||
423 | return err; | 425 | return err; |
424 | } | 426 | } |