From: Eric Saint-Etienne Date: Mon, 30 Jan 2017 12:27:49 +0000 (-0800) Subject: sparc64: fix for user probes in high memory X-Git-Tag: v4.1.12-92~1^2~11 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=116582842126dbdf222efe29c2e4fc423c2fcd9e;p=users%2Fjedix%2Flinux-maple.git sparc64: fix for user probes in high memory Orabug 25428066 When returning from the user probe code into userspace process, PC & NPC are truncated to 32 bits. As a result of shared libraries get 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 Reviewed-by: David Aldridge Signed-off-by: Allen Pais --- diff --git a/arch/sparc/include/asm/uprobes.h b/arch/sparc/include/asm/uprobes.h index f87aae5a908e6..36196c17aff8e 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;