Browse Source

arm/arm64: KVM: Add hook for C-based stage2 init

As we're about to move the stage2 init to C code, introduce some
C hooks that will later be populated with arch-specific implementations.

Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Marc Zyngier 9 years ago
parent
commit
35a2491a62
3 changed files with 9 additions and 0 deletions
  1. 4 0
      arch/arm/include/asm/kvm_host.h
  2. 1 0
      arch/arm/kvm/arm.c
  3. 4 0
      arch/arm64/include/asm/kvm_host.h

+ 4 - 0
arch/arm/include/asm/kvm_host.h

@@ -220,6 +220,10 @@ static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr,
 	kvm_call_hyp((void*)hyp_stack_ptr, vector_ptr, pgd_ptr);
 	kvm_call_hyp((void*)hyp_stack_ptr, vector_ptr, pgd_ptr);
 }
 }
 
 
+static inline void __cpu_init_stage2(void)
+{
+}
+
 static inline int kvm_arch_dev_ioctl_check_extension(long ext)
 static inline int kvm_arch_dev_ioctl_check_extension(long ext)
 {
 {
 	return 0;
 	return 0;

+ 1 - 0
arch/arm/kvm/arm.c

@@ -985,6 +985,7 @@ static void cpu_init_hyp_mode(void *dummy)
 	vector_ptr = (unsigned long)__kvm_hyp_vector;
 	vector_ptr = (unsigned long)__kvm_hyp_vector;
 
 
 	__cpu_init_hyp_mode(boot_pgd_ptr, pgd_ptr, hyp_stack_ptr, vector_ptr);
 	__cpu_init_hyp_mode(boot_pgd_ptr, pgd_ptr, hyp_stack_ptr, vector_ptr);
+	__cpu_init_stage2();
 
 
 	kvm_arm_init_debug();
 	kvm_arm_init_debug();
 }
 }

+ 4 - 0
arch/arm64/include/asm/kvm_host.h

@@ -332,6 +332,10 @@ static inline void __cpu_init_hyp_mode(phys_addr_t boot_pgd_ptr,
 		     hyp_stack_ptr, vector_ptr);
 		     hyp_stack_ptr, vector_ptr);
 }
 }
 
 
+static inline void __cpu_init_stage2(void)
+{
+}
+
 static inline void kvm_arch_hardware_disable(void) {}
 static inline void kvm_arch_hardware_disable(void) {}
 static inline void kvm_arch_hardware_unsetup(void) {}
 static inline void kvm_arch_hardware_unsetup(void) {}
 static inline void kvm_arch_sync_events(struct kvm *kvm) {}
 static inline void kvm_arch_sync_events(struct kvm *kvm) {}