diff options
author | popcornmix <popcornmix@gmail.com> | 2016-02-01 13:42:12 +0000 |
---|---|---|
committer | popcornmix <popcornmix@gmail.com> | 2016-02-01 13:42:12 +0000 |
commit | 6330c27817186caf38fc80e467cf858d9dd167fd (patch) | |
tree | 25bb35d10d081ce9ea38183ed0920354c139a1ce /arch/arm64/kernel/suspend.c | |
parent | db37370d01c4f46c010ce666ce318fb385ac5fe7 (diff) | |
parent | 2d5f6b0413359df065fd02d695c08bbc7d998bbd (diff) |
Merge remote-tracking branch 'stable/linux-4.1.y' into rpi-4.1.yrpi-bootloader-1.20160202-1
Diffstat (limited to 'arch/arm64/kernel/suspend.c')
-rw-r--r-- | arch/arm64/kernel/suspend.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/arm64/kernel/suspend.c b/arch/arm64/kernel/suspend.c index 53f1f8dccf6c..357418137db7 100644 --- a/arch/arm64/kernel/suspend.c +++ b/arch/arm64/kernel/suspend.c @@ -1,3 +1,4 @@ +#include <linux/ftrace.h> #include <linux/percpu.h> #include <linux/slab.h> #include <asm/cacheflush.h> @@ -71,6 +72,13 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) local_dbg_save(flags); /* + * Function graph tracer state gets incosistent when the kernel + * calls functions that never return (aka suspend finishers) hence + * disable graph tracing during their execution. + */ + pause_graph_tracing(); + + /* * mm context saved on the stack, it will be restored when * the cpu comes out of reset through the identity mapped * page tables, so that the thread address space is properly @@ -111,6 +119,8 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) hw_breakpoint_restore(NULL); } + unpause_graph_tracing(); + /* * Restore pstate flags. OS lock and mdscr have been already * restored, so from this point onwards, debugging is fully |