diff options
Diffstat (limited to 'drivers/firmware/psci/psci.c')
| -rw-r--r-- | drivers/firmware/psci/psci.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index f5fc429cae3f..f5bd0dcbbb1c 100644 --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -23,6 +23,7 @@  #include <asm/cpuidle.h>  #include <asm/cputype.h> +#include <asm/hypervisor.h>  #include <asm/system_misc.h>  #include <asm/smp_plat.h>  #include <asm/suspend.h> @@ -325,8 +326,9 @@ static int __init psci_features(u32 psci_func_id)  static int psci_suspend_finisher(unsigned long state)  {  	u32 power_state = state; +	phys_addr_t pa_cpu_resume = __pa_symbol(function_nocfi(cpu_resume)); -	return psci_ops.cpu_suspend(power_state, __pa_symbol(cpu_resume)); +	return psci_ops.cpu_suspend(power_state, pa_cpu_resume);  }  int psci_cpu_suspend_enter(u32 state) @@ -344,8 +346,10 @@ int psci_cpu_suspend_enter(u32 state)  static int psci_system_suspend(unsigned long unused)  { +	phys_addr_t pa_cpu_resume = __pa_symbol(function_nocfi(cpu_resume)); +  	return invoke_psci_fn(PSCI_FN_NATIVE(1_0, SYSTEM_SUSPEND), -			      __pa_symbol(cpu_resume), 0, 0); +			      pa_cpu_resume, 0, 0);  }  static int psci_system_suspend_enter(suspend_state_t state) @@ -498,6 +502,7 @@ static int __init psci_probe(void)  		psci_init_cpu_suspend();  		psci_init_system_suspend();  		psci_init_system_reset2(); +		kvm_init_hyp_services();  	}  	return 0; | 
