projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0034102
)
x86, microcode: Fix sysfs warning during module unload on unsupported CPUs
author
Andreas Herrmann
<
[email protected]
>
Thu, 12 Apr 2012 14:48:01 +0000
(16:48 +0200)
committer
Borislav Petkov
<
[email protected]
>
Fri, 13 Apr 2012 09:49:06 +0000
(11:49 +0200)
Loading the microcode driver on an unsupported CPU and subsequently
unloading the driver causes
WARNING: at fs/sysfs/group.c:138 mc_device_remove+0x5f/0x70 [microcode]()
Hardware name: 01972NG
sysfs group
ffffffffa00013d0
not found for kobject 'cpu0'
Modules linked in: snd_hda_codec_hdmi snd_hda_codec_conexant snd_hda_intel btusb snd_hda_codec bluetooth thinkpad_acpi rfkill microcode(-) [last unloaded: cfg80211]
Pid: 4560, comm: modprobe Not tainted
3.4.0-rc2-00002-g258f742
#5
Call Trace:
[<
ffffffff8103113b
>] ? warn_slowpath_common+0x7b/0xc0
[<
ffffffff81031235
>] ? warn_slowpath_fmt+0x45/0x50
[<
ffffffff81120e74
>] ? sysfs_remove_group+0x34/0x120
[<
ffffffffa00000ef
>] ? mc_device_remove+0x5f/0x70 [microcode]
[<
ffffffff81331eb9
>] ? subsys_interface_unregister+0x69/0xa0
[<
ffffffff81563526
>] ? mutex_lock+0x16/0x40
[<
ffffffffa0000c3e
>] ? microcode_exit+0x50/0x92 [microcode]
[<
ffffffff8107051d
>] ? sys_delete_module+0x16d/0x260
[<
ffffffff810a0065
>] ? wait_iff_congested+0x45/0x110
[<
ffffffff815656af
>] ? page_fault+0x1f/0x30
[<
ffffffff81565ba2
>] ? system_call_fastpath+0x16/0x1b
on recent kernels.
This is due to commit
8a25a2fd126c
("cpu: convert 'cpu' and
'machinecheck' sysdev_class to a regular subsystem") which renders
commit
6c53cbfced04
("x86, microcode: Correct sysdev_add error path")
useless.
See http://marc.info/?l=linux-kernel&m=
133416246406478
Avoid above warning by restoring the old driver behaviour before
6c53cbfced04
("x86, microcode: Correct sysdev_add error path").
Cc:
[email protected]
Cc: Tigran Aivazian <
[email protected]
>
Signed-off-by: Andreas Herrmann <
[email protected]
>
Acked-by: Greg Kroah-Hartman <
[email protected]
>
Link:
http://lkml.kernel.org/r/
[email protected]
Signed-off-by: Borislav Petkov <
[email protected]
>
arch/x86/kernel/microcode_core.c
patch
|
blob
|
history
diff --git
a/arch/x86/kernel/microcode_core.c
b/arch/x86/kernel/microcode_core.c
index 87a0f868830141cc6e508341c756640ace7fc34c..d389e74342a3ff223b4d2262ef91911d8d6ed0e3 100644
(file)
--- a/
arch/x86/kernel/microcode_core.c
+++ b/
arch/x86/kernel/microcode_core.c
@@
-419,10
+419,8
@@
static int mc_device_add(struct device *dev, struct subsys_interface *sif)
if (err)
return err;
- if (microcode_init_cpu(cpu) == UCODE_ERROR) {
- sysfs_remove_group(&dev->kobj, &mc_attr_group);
+ if (microcode_init_cpu(cpu) == UCODE_ERROR)
return -EINVAL;
- }
return err;
}