Skip to content

Commit 31114c4

Browse files
Andreas Herrmannbwhacks
Andreas Herrmann
authored andcommitted
x86, microcode: Fix sysfs warning during module unload on unsupported CPUs
commit a956bd6 upstream. 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 raspberrypi#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 8a25a2f ("cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem") which renders commit 6c53cbf ("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 6c53cbf ("x86, microcode: Correct sysdev_add error path"). 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]> [bwh: Backported to 3.2: deleted line uses sys_dev, not dev] Signed-off-by: Ben Hutchings <[email protected]>
1 parent 749ff0d commit 31114c4

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

arch/x86/kernel/microcode_core.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,10 +418,8 @@ static int mc_sysdev_add(struct sys_device *sys_dev)
418418
if (err)
419419
return err;
420420

421-
if (microcode_init_cpu(cpu) == UCODE_ERROR) {
422-
sysfs_remove_group(&sys_dev->kobj, &mc_attr_group);
421+
if (microcode_init_cpu(cpu) == UCODE_ERROR)
423422
return -EINVAL;
424-
}
425423

426424
return err;
427425
}

0 commit comments

Comments
 (0)