From 8530055bc0020592dab1ff8fedd6880ffb13e1bc Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 16 Sep 2008 13:49:16 +0100 Subject: [PATCH] x86, microcode: Free microcode_info struct at end of hypercall. Signed-off-by: Keir Fraser --- xen/arch/x86/microcode.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c index 0d97db531d..3b7d6a1356 100644 --- a/xen/arch/x86/microcode.c +++ b/xen/arch/x86/microcode.c @@ -147,10 +147,13 @@ static long do_microcode_update(void *_info) info->error = error; info->cpu = next_cpu(info->cpu, cpu_online_map); - if ( info->cpu >= NR_CPUS ) - return info->error; + if ( info->cpu < NR_CPUS ) + return continue_hypercall_on_cpu(info->cpu, do_microcode_update, info); + + error = info->error; + xfree(info); + return error; - return continue_hypercall_on_cpu(info->cpu, do_microcode_update, info); } int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len) -- 2.30.2