diff options
author | Jan Beulich <jbeulich@suse.com> | 2011-12-01 17:55:26 +0100 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2011-12-01 17:55:26 +0100 |
commit | 0bda96825f7f8fcb32a609b3d507e8f0a0adf8a2 (patch) | |
tree | 7c2659998f0dd83ac266787b5b373be4769861f4 /xen/arch/x86/Makefile | |
parent | 943730ecffa8807ebb5c47f01a686e021f3c0390 (diff) | |
download | xen-0bda96825f7f8fcb32a609b3d507e8f0a0adf8a2.tar.gz xen-0bda96825f7f8fcb32a609b3d507e8f0a0adf8a2.tar.bz2 xen-0bda96825f7f8fcb32a609b3d507e8f0a0adf8a2.zip |
x86: consolidate microcode loading code
- memory was leaked on a CPU offline/online cycle (including S3)
- memory was leaked on AMD systems when microcode_update() ran a 2nd
time with the same data that was used on the first run
- microcode never got restored on APs during S3 resume (or post-boot
onlining of a CPU that was also online when microcode_update() first
ran [in the event the prior microcode update got lost intermediately,
which supposedly shouldn't happen]); this will still be the case when
no other online CPU has an identical signature (which however is now
consistent with bringing up such a CPU the very first time)
- resume was unimplemented in the AMD case
- there was a race between microcode_update_cpu() and
microcode_resume_cpu()
This also moves vendor specific type declarations to the vendor source
file and sets the stage for boot time microcode loading (i.e. without
Dom0 involvement).
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/Makefile')
-rw-r--r-- | xen/arch/x86/Makefile | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile index 466ecee5b8..bddc52b32e 100644 --- a/xen/arch/x86/Makefile +++ b/xen/arch/x86/Makefile @@ -30,9 +30,10 @@ obj-y += io_apic.o obj-y += msi.o obj-y += ioport_emulate.o obj-y += irq.o -obj-y += microcode.o obj-y += microcode_amd.o obj-y += microcode_intel.o +# This must come after the vendor specific files. +obj-y += microcode.o obj-y += mm.o obj-y += mpparse.o obj-y += nmi.o |