From: Borislav Petkov <[email protected]> ... and simplify a bit.
No functionality change. Signed-off-by: Borislav Petkov <[email protected]> --- arch/x86/kernel/cpu/mcheck/mce-inject.c | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/arch/x86/kernel/cpu/mcheck/mce-inject.c b/arch/x86/kernel/cpu/mcheck/mce-inject.c index f1d8d3f9ec1d..675d2da3d31f 100644 --- a/arch/x86/kernel/cpu/mcheck/mce-inject.c +++ b/arch/x86/kernel/cpu/mcheck/mce-inject.c @@ -676,8 +676,8 @@ static struct dfs_node { static int __init debugfs_init(void) { - int i; u64 cap; + int i; rdmsrl(MSR_IA32_MCG_CAP, cap); n_banks = cap & MCG_BANKCNT_MASK; @@ -700,28 +700,12 @@ static int __init debugfs_init(void) return 0; err_dfs_add: - while (--i >= 0) - debugfs_remove(dfs_fls[i].d); - - debugfs_remove(dfs_inj); + debugfs_remove_recursive(dfs_inj); dfs_inj = NULL; return -ENOMEM; } -static void __exit debugfs_exit(void) -{ - int i; - - for (i = 0; i < ARRAY_SIZE(dfs_fls); i++) - debugfs_remove(dfs_fls[i].d); - - memset(&dfs_fls, 0, sizeof(dfs_fls)); - - debugfs_remove(dfs_inj); - dfs_inj = NULL; -} - static int inject_init(void) { int err; @@ -752,6 +736,16 @@ module_init(inject_init); * guarantee all openers of mce_chrdev will get a reference to us. */ #ifndef CONFIG_X86_MCELOG +static void __exit debugfs_exit(void) +{ + debugfs_remove_recursive(dfs_inj); + dfs_inj = NULL; + + unregister_nmi_handler(NMI_LOCAL, "mce_notify"); + + free_cpumask_var(mce_inject_cpumask); +} + module_exit(debugfs_exit); #endif -- 2.7.3

