Messages in this thread Patch in this message |  | | Date | Wed, 15 Apr 2020 09:49:53 -0000 | From | "tip-bot2 for Thomas Gleixner" <> | Subject | [tip: ras/core] x86/mce/amd: Do proper cleanup on error paths |
| |
The following commit has been merged into the ras/core branch of tip:
Commit-ID: ada018b15ccecbdb95df46db7121516edb906bf6 Gitweb: https://git.kernel.org/tip/ada018b15ccecbdb95df46db7121516edb906bf6 Author: Thomas Gleixner <tglx@linutronix.de> AuthorDate: Fri, 14 Feb 2020 18:32:43 +01:00 Committer: Borislav Petkov <bp@suse.de> CommitterDate: Tue, 14 Apr 2020 15:31:17 +02:00
x86/mce/amd: Do proper cleanup on error paths
Drop kobject reference counts properly on error in the banks and blocks allocation functions.
[ bp: Write commit message. ]
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Borislav Petkov <bp@suse.de> Link: https://lkml.kernel.org/r/20200403161943.1458-2-bp@alien8.de --- arch/x86/kernel/cpu/mce/amd.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c index 52de616..477cf77 100644 --- a/arch/x86/kernel/cpu/mce/amd.c +++ b/arch/x86/kernel/cpu/mce/amd.c @@ -1267,13 +1267,12 @@ recurse: if (b) kobject_uevent(&b->kobj, KOBJ_ADD); - return err; + return 0; out_free: if (b) { - kobject_put(&b->kobj); list_del(&b->miscj); - kfree(b); + kobject_put(&b->kobj); } return err; } @@ -1339,6 +1338,7 @@ static int threshold_create_bank(unsigned int cpu, unsigned int bank) goto out; } + /* Associate the bank with the per-CPU MCE device */ b->kobj = kobject_create_and_add(name, &dev->kobj); if (!b->kobj) { err = -EINVAL; @@ -1357,16 +1357,17 @@ static int threshold_create_bank(unsigned int cpu, unsigned int bank) err = allocate_threshold_blocks(cpu, b, bank, 0, msr_ops.misc(bank)); if (err) - goto out_free; + goto out_kobj; per_cpu(threshold_banks, cpu)[bank] = b; return 0; - out_free: +out_kobj: + kobject_put(b->kobj); +out_free: kfree(b); - - out: +out: return err; }
|  |