diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2013-12-28 10:29:37 +0000 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2013-12-28 10:29:37 +0000 |
commit | da91747cda0fdbaa05b80becb5cecfac35c8de36 (patch) | |
tree | 664d9ae407eb5f80c685e5a0a5035d053dadbe1c /arch/arm64/kvm/guest.c | |
parent | 60dd133a7b77b6adc2d18ff1a85db5a67434a071 (diff) | |
parent | e5cf9dcdbfd26cd4e1991db08755da900454efeb (diff) | |
download | lwn-da91747cda0fdbaa05b80becb5cecfac35c8de36.tar.gz lwn-da91747cda0fdbaa05b80becb5cecfac35c8de36.zip |
Merge branch 'kvm-arm64/for-3.14' into kvm-arm64/next
Diffstat (limited to 'arch/arm64/kvm/guest.c')
-rw-r--r-- | arch/arm64/kvm/guest.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c index 3f0731e53274..08745578d54d 100644 --- a/arch/arm64/kvm/guest.c +++ b/arch/arm64/kvm/guest.c @@ -207,20 +207,26 @@ int __attribute_const__ kvm_target_cpu(void) unsigned long implementor = read_cpuid_implementor(); unsigned long part_number = read_cpuid_part_number(); - if (implementor != ARM_CPU_IMP_ARM) - return -EINVAL; + switch (implementor) { + case ARM_CPU_IMP_ARM: + switch (part_number) { + case ARM_CPU_PART_AEM_V8: + return KVM_ARM_TARGET_AEM_V8; + case ARM_CPU_PART_FOUNDATION: + return KVM_ARM_TARGET_FOUNDATION_V8; + case ARM_CPU_PART_CORTEX_A57: + return KVM_ARM_TARGET_CORTEX_A57; + }; + break; + case ARM_CPU_IMP_APM: + switch (part_number) { + case APM_CPU_PART_POTENZA: + return KVM_ARM_TARGET_XGENE_POTENZA; + }; + break; + }; - switch (part_number) { - case ARM_CPU_PART_AEM_V8: - return KVM_ARM_TARGET_AEM_V8; - case ARM_CPU_PART_FOUNDATION: - return KVM_ARM_TARGET_FOUNDATION_V8; - case ARM_CPU_PART_CORTEX_A57: - /* Currently handled by the generic backend */ - return KVM_ARM_TARGET_CORTEX_A57; - default: - return -EINVAL; - } + return -EINVAL; } int kvm_vcpu_set_target(struct kvm_vcpu *vcpu, |