aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/microcode.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-09-16 13:09:04 +0100
committerKeir Fraser <keir.fraser@citrix.com>2008-09-16 13:09:04 +0100
commit5f9a78e33714459cc6162d7e37489a75d816abe0 (patch)
treee357031aadf8bc7d5ebaba783d33c3561fde972d /xen/arch/x86/microcode.c
parent59bbc091e9ba50ed480b03c6341dbd915e051db0 (diff)
downloadxen-5f9a78e33714459cc6162d7e37489a75d816abe0.tar.gz
xen-5f9a78e33714459cc6162d7e37489a75d816abe0.tar.bz2
xen-5f9a78e33714459cc6162d7e37489a75d816abe0.zip
x86, microcode: More code cleanups.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/arch/x86/microcode.c')
-rw-r--r--xen/arch/x86/microcode.c27
1 files changed, 6 insertions, 21 deletions
diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c
index 9e3b9bd280..f39153997a 100644
--- a/xen/arch/x86/microcode.c
+++ b/xen/arch/x86/microcode.c
@@ -36,9 +36,6 @@
#include <asm/processor.h>
#include <asm/microcode.h>
-static int verbose;
-boolean_param("microcode.verbose", verbose);
-
const struct microcode_ops *microcode_ops;
static DEFINE_SPINLOCK(microcode_mutex);
@@ -58,7 +55,8 @@ static void microcode_fini_cpu(int cpu)
struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
spin_lock(&microcode_mutex);
- microcode_ops->microcode_fini_cpu(cpu);
+ xfree(uci->mc.valid_mc);
+ uci->mc.valid_mc = NULL;
uci->valid = 0;
spin_unlock(&microcode_mutex);
}
@@ -142,36 +140,23 @@ static int microcode_update_cpu(int cpu, const void *buf, size_t size)
static void do_microcode_update_one(void *info)
{
- int error;
-
- error = microcode_update_cpu(
+ int error = microcode_update_cpu(
smp_processor_id(), microcode_buffer.buf, microcode_buffer.size);
-
if ( error )
microcode_error = error;
}
static int do_microcode_update(void)
{
- int error = 0;
-
microcode_error = 0;
if ( on_each_cpu(do_microcode_update_one, NULL, 1, 1) != 0 )
{
printk(KERN_ERR "microcode: Error! Could not run on all processors\n");
- error = -EIO;
- goto out;
- }
-
- if ( microcode_error )
- {
- error = microcode_error;
- goto out;
+ return -EIO;
}
- out:
- return error;
+ return microcode_error;
}
int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
@@ -187,7 +172,7 @@ int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
return -E2BIG;
}
- if (microcode_ops == NULL)
+ if ( microcode_ops == NULL )
return -EINVAL;
microcode_buffer.buf = xmalloc_array(uint8_t, len);