summaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorChristopher Covington <cov@codeaurora.org>2013-04-03 20:01:01 +0200
committerCatalin Marinas <catalin.marinas@arm.com>2013-04-17 17:11:35 +0200
commit3325732f3b223812e54ac67dbb0a8ea7c99cf519 (patch)
tree1289fc098b4147b25c98168498afd4babfc9cf6e /arch/arm64
parentarm64: add explicit symbols to ESR_EL1 decoding (diff)
downloadlinux-3325732f3b223812e54ac67dbb0a8ea7c99cf519.tar.xz
linux-3325732f3b223812e54ac67dbb0a8ea7c99cf519.zip
arm64: Fix task tracing
For accurate accounting call contextidr_thread_switch before a task is scheduled, rather than after, when the 'next' variable has a different meaning since we switched the stacks. Signed-off-by: Christopher Covington <cov@codeaurora.org> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/kernel/process.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c
index 0337cdb0667b..c2cc2493481b 100644
--- a/arch/arm64/kernel/process.c
+++ b/arch/arm64/kernel/process.c
@@ -311,11 +311,11 @@ struct task_struct *__switch_to(struct task_struct *prev,
fpsimd_thread_switch(next);
tls_thread_switch(next);
hw_breakpoint_thread_switch(next);
+ contextidr_thread_switch(next);
/* the actual thread switch */
last = cpu_switch_to(prev, next);
- contextidr_thread_switch(next);
return last;
}