diff options
author | Eric Saint Etienne <eric.saint.etienne@oracle.com> | 2017-02-06 14:32:41 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-23 08:22:28 -0800 |
commit | 269d8523585c1b82b53aff3cf00d88ccbaf58c35 (patch) | |
tree | 74b298f58a1ee5f7aa798147e6be26143add91c2 /arch/sparc | |
parent | fc5e8c283999168942baa5ef7f3805444f80be2b (diff) | |
download | linux-stable-269d8523585c1b82b53aff3cf00d88ccbaf58c35.tar.gz linux-stable-269d8523585c1b82b53aff3cf00d88ccbaf58c35.tar.bz2 linux-stable-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.h | 4 |
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; |