summaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorEric Saint Etienne <eric.saint.etienne@oracle.com>2017-02-06 15:32:41 +0100
committerDavid S. Miller <davem@davemloft.net>2017-02-23 17:22:28 +0100
commit269d8523585c1b82b53aff3cf00d88ccbaf58c35 (patch)
tree74b298f58a1ee5f7aa798147e6be26143add91c2 /arch/sparc
parentsparc: topology_64.h: Fix condition for including cpudata.h (diff)
downloadlinux-269d8523585c1b82b53aff3cf00d88ccbaf58c35.tar.xz
linux-269d8523585c1b82b53aff3cf00d88ccbaf58c35.zip
sparc64: fix for user probes in high memory
When returning from the user probe code into userspace process, PC & NPC are truncated to 32 bits. Due to shared libraries getting loaded very high in the virtual address space of the process, placing a user probe inside a shared library makes the kernel return into the process at the wrong address, causing it to seg'fault most of the time. This patch prevents truncating PC and NPC. Signed-off-by: Eric Saint Etienne <eric.saint.etienne@oracle.com> Reviewed-by: David Aldridge <david.j.aldridge@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/include/asm/uprobes.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sparc/include/asm/uprobes.h b/arch/sparc/include/asm/uprobes.h
index f87aae5a908e..36196c17aff8 100644
--- a/arch/sparc/include/asm/uprobes.h
+++ b/arch/sparc/include/asm/uprobes.h
@@ -42,8 +42,8 @@ struct arch_uprobe {
};
struct arch_uprobe_task {
- u32 saved_tpc;
- u32 saved_tnpc;
+ u64 saved_tpc;
+ u64 saved_tnpc;
};
struct task_struct;