aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2010-10-25 10:10:41 -0400
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2010-10-25 10:10:20 -0400
commitba6cadfebc18f786ef4e60e9ff03f9656ce3d584 (patch)
tree9e606198947762e077035676ee6f1099bb8fa7d1
parentbaa071588c3ffcc1a8721faf9337140e85d34bf6 (diff)
[S390] remove ieee_instruction_pointer from thread_struct
The ieee_instruction_pointer can not be read from user space anymore since git commit 613e1def6b52c399a8b72a5e11bc2e57d2546fb8, the ptrace interface always returns zero. Remove it from the thread_struct. It is still present in the user_regs_struct for compatability reasons. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/include/asm/processor.h2
-rw-r--r--arch/s390/include/asm/ptrace.h3
-rw-r--r--arch/s390/kernel/compat_ptrace.h3
-rw-r--r--arch/s390/kernel/traps.c1
4 files changed, 2 insertions, 7 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
index 73e259834e10..8d6f87169577 100644
--- a/arch/s390/include/asm/processor.h
+++ b/arch/s390/include/asm/processor.h
@@ -82,8 +82,6 @@ struct thread_struct {
82 unsigned long prot_addr; /* address of protection-excep. */ 82 unsigned long prot_addr; /* address of protection-excep. */
83 unsigned int trap_no; 83 unsigned int trap_no;
84 per_struct per_info; 84 per_struct per_info;
85 /* Used to give failing instruction back to user for ieee exceptions */
86 unsigned long ieee_instruction_pointer;
87 /* pfault_wait is used to block the process on a pfault event */ 85 /* pfault_wait is used to block the process on a pfault event */
88 unsigned long pfault_wait; 86 unsigned long pfault_wait;
89}; 87};
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h
index e2c218dc68a6..d9d42b1e46fa 100644
--- a/arch/s390/include/asm/ptrace.h
+++ b/arch/s390/include/asm/ptrace.h
@@ -481,8 +481,7 @@ struct user_regs_struct
481 * watchpoints. This is the way intel does it. 481 * watchpoints. This is the way intel does it.
482 */ 482 */
483 per_struct per_info; 483 per_struct per_info;
484 unsigned long ieee_instruction_pointer; 484 unsigned long ieee_instruction_pointer; /* obsolete, always 0 */
485 /* Used to give failing instruction back to user for ieee exceptions */
486}; 485};
487 486
488#ifdef __KERNEL__ 487#ifdef __KERNEL__
diff --git a/arch/s390/kernel/compat_ptrace.h b/arch/s390/kernel/compat_ptrace.h
index 123dd660d7fb..3141025724f4 100644
--- a/arch/s390/kernel/compat_ptrace.h
+++ b/arch/s390/kernel/compat_ptrace.h
@@ -51,8 +51,7 @@ struct user_regs_struct32
51 * watchpoints. This is the way intel does it. 51 * watchpoints. This is the way intel does it.
52 */ 52 */
53 per_struct32 per_info; 53 per_struct32 per_info;
54 u32 ieee_instruction_pointer; 54 u32 ieee_instruction_pointer; /* obsolete, always 0 */
55 /* Used to give failing instruction back to user for ieee exceptions */
56}; 55};
57 56
58struct user32 { 57struct user32 {
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c
index e9b063e7d75f..70640822621a 100644
--- a/arch/s390/kernel/traps.c
+++ b/arch/s390/kernel/traps.c
@@ -447,7 +447,6 @@ static inline void do_fp_trap(struct pt_regs *regs, void __user *location,
447 else if (fpc & 0x0800) /* inexact */ 447 else if (fpc & 0x0800) /* inexact */
448 si.si_code = FPE_FLTRES; 448 si.si_code = FPE_FLTRES;
449 } 449 }
450 current->thread.ieee_instruction_pointer = (addr_t) location;
451 do_trap(pgm_int_code, SIGFPE, 450 do_trap(pgm_int_code, SIGFPE,
452 "floating point exception", regs, &si); 451 "floating point exception", regs, &si);
453} 452}