From 0ea45505dd5997581452e60d5467f9165417e584 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Mon, 17 Sep 2012 10:03:35 +0200 Subject: [PATCH] kvm tools: fix SMP We accidently broke SMP when we moved mptable init to before we initialize the vcpu count, that means that we always built smptable which was not properly initialized for the given configuration. Instead of initializing mptable as part of the kvm arch initialization, let it be initialized on it's own in the firmware initialization level. Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- tools/kvm/x86/kvm.c | 14 ++------------ tools/kvm/x86/mptable.c | 2 ++ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/tools/kvm/x86/kvm.c b/tools/kvm/x86/kvm.c index e636d434b8fc..ecada450c26e 100644 --- a/tools/kvm/x86/kvm.c +++ b/tools/kvm/x86/kvm.c @@ -342,27 +342,17 @@ bool load_bzimage(struct kvm *kvm, int fd_kernel, */ int kvm__arch_setup_firmware(struct kvm *kvm) { - int r; - /* standart minimal configuration */ setup_bios(kvm); /* FIXME: SMP, ACPI and friends here */ - /* MP table */ - r = mptable__init(kvm); - - return r; + return 0; } int kvm__arch_free_firmware(struct kvm *kvm) { - int r; - - /* MP table */ - r = mptable__exit(kvm); - - return r; + return 0; } void kvm__arch_periodic_poll(struct kvm *kvm) diff --git a/tools/kvm/x86/mptable.c b/tools/kvm/x86/mptable.c index 12bdcf8f32b8..ea8c6e8c848f 100644 --- a/tools/kvm/x86/mptable.c +++ b/tools/kvm/x86/mptable.c @@ -280,8 +280,10 @@ int mptable__init(struct kvm *kvm) return 0; } +firmware_init(mptable__init); int mptable__exit(struct kvm *kvm) { return 0; } +firmware_exit(mptable__exit); -- 2.39.5