diff options
Diffstat (limited to 'arch/arm/kvm/arm.c')
| -rw-r--r-- | arch/arm/kvm/arm.c | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index b5384311dec4..dded1b763c16 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c @@ -1112,10 +1112,17 @@ static void __init hyp_cpu_pm_init(void)  {  	cpu_pm_register_notifier(&hyp_init_cpu_pm_nb);  } +static void __init hyp_cpu_pm_exit(void) +{ +	cpu_pm_unregister_notifier(&hyp_init_cpu_pm_nb); +}  #else  static inline void hyp_cpu_pm_init(void)  {  } +static inline void hyp_cpu_pm_exit(void) +{ +}  #endif  static void teardown_common_resources(void) @@ -1141,9 +1148,7 @@ static int init_subsystems(void)  	/*  	 * Register CPU Hotplug notifier  	 */ -	cpu_notifier_register_begin(); -	err = __register_cpu_notifier(&hyp_init_cpu_nb); -	cpu_notifier_register_done(); +	err = register_cpu_notifier(&hyp_init_cpu_nb);  	if (err) {  		kvm_err("Cannot register KVM init CPU notifier (%d)\n", err);  		return err; @@ -1193,6 +1198,8 @@ static void teardown_hyp_mode(void)  	free_hyp_pgds();  	for_each_possible_cpu(cpu)  		free_page(per_cpu(kvm_arm_hyp_stack_page, cpu)); +	unregister_cpu_notifier(&hyp_init_cpu_nb); +	hyp_cpu_pm_exit();  }  static int init_vhe_mode(void) | 
