Răsfoiți Sursa

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>
Eric Saint Etienne 8 ani în urmă
părinte
comite
269d852358
1 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  1. 2 2
      arch/sparc/include/asm/uprobes.h

+ 2 - 2
arch/sparc/include/asm/uprobes.h

@@ -42,8 +42,8 @@ struct arch_uprobe {
 };
 };
 
 
 struct arch_uprobe_task {
 struct arch_uprobe_task {
-	u32 saved_tpc;
-	u32 saved_tnpc;
+	u64 saved_tpc;
+	u64 saved_tnpc;
 };
 };
 
 
 struct task_struct;
 struct task_struct;