X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=kernel%2Farch%2Farm64%2Fkernel%2Fsuspend.c;fp=kernel%2Farch%2Farm64%2Fkernel%2Fsuspend.c;h=00c1372bf57ba19e74d6bb87cc0fdc8e6ead8837;hb=52f993b8e89487ec9ee15a7fb4979e0f09a45b27;hp=1095aa483a1c28e5387b23895c14d7a1746268a3;hpb=c189ccac5702322ed843fe17057035b7222a59b6;p=kvmfornfv.git diff --git a/kernel/arch/arm64/kernel/suspend.c b/kernel/arch/arm64/kernel/suspend.c index 1095aa483..00c1372bf 100644 --- a/kernel/arch/arm64/kernel/suspend.c +++ b/kernel/arch/arm64/kernel/suspend.c @@ -1,7 +1,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -110,6 +112,13 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) */ set_my_cpu_offset(per_cpu_offset(smp_processor_id())); + /* + * PSTATE was not saved over suspend/resume, re-enable any + * detected features that might not have been set correctly. + */ + asm(ALTERNATIVE("nop", SET_PSTATE_PAN(1), ARM64_HAS_PAN, + CONFIG_ARM64_PAN)); + /* * Restore HW breakpoint registers to sane values * before debug exceptions are possibly reenabled