KVM: SVM: move feature detection to hardware setup code
authorJoerg Roedel <joerg.roedel@amd.com>
Thu, 7 Feb 2008 12:47:38 +0000 (13:47 +0100)
committerAvi Kivity <avi@qumranet.com>
Sun, 27 Apr 2008 08:53:19 +0000 (11:53 +0300)
By moving the SVM feature detection from the each_cpu code to the hardware
setup code it runs only once. As an additional advance the feature check is now
available earlier in the module setup process.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/x86/kvm/svm.c

index ff3bc74af728a2f8e6d525ba0e5962793e58a577..5f527dc0e1629a4e76cfb4ff2dbaa00bc15820a9 100644 (file)
@@ -302,7 +302,6 @@ static void svm_hardware_enable(void *garbage)
        svm_data->asid_generation = 1;
        svm_data->max_asid = cpuid_ebx(SVM_CPUID_FUNC) - 1;
        svm_data->next_asid = svm_data->max_asid + 1;
-       svm_features = cpuid_edx(SVM_CPUID_FUNC);
 
        asm volatile ("sgdt %0" : "=m"(gdt_descr));
        gdt = (struct desc_struct *)gdt_descr.address;
@@ -411,6 +410,9 @@ static __init int svm_hardware_setup(void)
                if (r)
                        goto err_2;
        }
+
+       svm_features = cpuid_edx(SVM_CPUID_FUNC);
+
        return 0;
 
 err_2: