diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2012-10-15 07:09:45 -0400 |
---|---|---|
committer | Christoffer Dall <cdall@cs.columbia.edu> | 2013-03-06 18:48:44 -0500 |
commit | 728d577d357c9caf83f75d0a38f318f343999cc2 (patch) | |
tree | 1b2fa2fcc4960b3a673476e6ead79461c9a210b4 /arch/arm/kvm/guest.c | |
parent | b4034bde5f168f2383a54b4573e1e440dbc169cf (diff) |
ARM: KVM: move kvm_target_cpu to guest.c
guest.c already contains some target-specific checks. Let's move
kvm_target_cpu() over there so arm.c is mostly target agnostic.
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch/arm/kvm/guest.c')
-rw-r--r-- | arch/arm/kvm/guest.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/arch/arm/kvm/guest.c b/arch/arm/kvm/guest.c index 2339d9609d36..152d03612181 100644 --- a/arch/arm/kvm/guest.c +++ b/arch/arm/kvm/guest.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/vmalloc.h> | 23 | #include <linux/vmalloc.h> |
24 | #include <linux/fs.h> | 24 | #include <linux/fs.h> |
25 | #include <asm/cputype.h> | ||
25 | #include <asm/uaccess.h> | 26 | #include <asm/uaccess.h> |
26 | #include <asm/kvm.h> | 27 | #include <asm/kvm.h> |
27 | #include <asm/kvm_asm.h> | 28 | #include <asm/kvm_asm.h> |
@@ -180,6 +181,22 @@ int kvm_arch_vcpu_ioctl_set_sregs(struct kvm_vcpu *vcpu, | |||
180 | return -EINVAL; | 181 | return -EINVAL; |
181 | } | 182 | } |
182 | 183 | ||
184 | int __attribute_const__ kvm_target_cpu(void) | ||
185 | { | ||
186 | unsigned long implementor = read_cpuid_implementor(); | ||
187 | unsigned long part_number = read_cpuid_part_number(); | ||
188 | |||
189 | if (implementor != ARM_CPU_IMP_ARM) | ||
190 | return -EINVAL; | ||
191 | |||
192 | switch (part_number) { | ||
193 | case ARM_CPU_PART_CORTEX_A15: | ||
194 | return KVM_ARM_TARGET_CORTEX_A15; | ||
195 | default: | ||
196 | return -EINVAL; | ||
197 | } | ||
198 | } | ||
199 | |||
183 | int kvm_vcpu_set_target(struct kvm_vcpu *vcpu, | 200 | int kvm_vcpu_set_target(struct kvm_vcpu *vcpu, |
184 | const struct kvm_vcpu_init *init) | 201 | const struct kvm_vcpu_init *init) |
185 | { | 202 | { |