diff options
Diffstat (limited to 'arch/arm/kvm/guest.c')
-rw-r--r-- | arch/arm/kvm/guest.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/arch/arm/kvm/guest.c b/arch/arm/kvm/guest.c index 152d03612181..20f8d97904af 100644 --- a/arch/arm/kvm/guest.c +++ b/arch/arm/kvm/guest.c | |||
@@ -190,6 +190,8 @@ int __attribute_const__ kvm_target_cpu(void) | |||
190 | return -EINVAL; | 190 | return -EINVAL; |
191 | 191 | ||
192 | switch (part_number) { | 192 | switch (part_number) { |
193 | case ARM_CPU_PART_CORTEX_A7: | ||
194 | return KVM_ARM_TARGET_CORTEX_A7; | ||
193 | case ARM_CPU_PART_CORTEX_A15: | 195 | case ARM_CPU_PART_CORTEX_A15: |
194 | return KVM_ARM_TARGET_CORTEX_A15; | 196 | return KVM_ARM_TARGET_CORTEX_A15; |
195 | default: | 197 | default: |
@@ -202,7 +204,7 @@ int kvm_vcpu_set_target(struct kvm_vcpu *vcpu, | |||
202 | { | 204 | { |
203 | unsigned int i; | 205 | unsigned int i; |
204 | 206 | ||
205 | /* We can only do a cortex A15 for now. */ | 207 | /* We can only cope with guest==host and only on A15/A7 (for now). */ |
206 | if (init->target != kvm_target_cpu()) | 208 | if (init->target != kvm_target_cpu()) |
207 | return -EINVAL; | 209 | return -EINVAL; |
208 | 210 | ||
@@ -222,6 +224,26 @@ int kvm_vcpu_set_target(struct kvm_vcpu *vcpu, | |||
222 | return kvm_reset_vcpu(vcpu); | 224 | return kvm_reset_vcpu(vcpu); |
223 | } | 225 | } |
224 | 226 | ||
227 | int kvm_vcpu_preferred_target(struct kvm_vcpu_init *init) | ||
228 | { | ||
229 | int target = kvm_target_cpu(); | ||
230 | |||
231 | if (target < 0) | ||
232 | return -ENODEV; | ||
233 | |||
234 | memset(init, 0, sizeof(*init)); | ||
235 | |||
236 | /* | ||
237 | * For now, we don't return any features. | ||
238 | * In future, we might use features to return target | ||
239 | * specific features available for the preferred | ||
240 | * target type. | ||
241 | */ | ||
242 | init->target = (__u32)target; | ||
243 | |||
244 | return 0; | ||
245 | } | ||
246 | |||
225 | int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) | 247 | int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu) |
226 | { | 248 | { |
227 | return -EINVAL; | 249 | return -EINVAL; |