diff options
| author | Steve French <sfrench@us.ibm.com> | 2008-03-01 18:29:55 +0000 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2008-03-01 18:29:55 +0000 |
| commit | 0dbd888936a23514716b8d944775bc56f731363a (patch) | |
| tree | a2c60cdc45bdcbed47680731fa8188bffe58c098 /arch/um/os-Linux/skas/process.c | |
| parent | 0b442d2c28479332610c46e1a74e5638ab63a97d (diff) | |
| parent | d395991c117d43bfca97101a931a41d062a93852 (diff) | |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'arch/um/os-Linux/skas/process.c')
| -rw-r--r-- | arch/um/os-Linux/skas/process.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index b14829469fa..1e8cba6550a 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c @@ -115,6 +115,14 @@ void get_skas_faultinfo(int pid, struct faultinfo * fi) sizeof(struct ptrace_faultinfo)); } else { + unsigned long fpregs[FP_SIZE]; + + err = get_fp_registers(pid, fpregs); + if (err < 0) { + printk(UM_KERN_ERR "save_fp_registers returned %d\n", + err); + fatal_sigsegv(); + } err = ptrace(PTRACE_CONT, pid, 0, SIGSEGV); if (err) { printk(UM_KERN_ERR "Failed to continue stub, pid = %d, " @@ -128,6 +136,13 @@ void get_skas_faultinfo(int pid, struct faultinfo * fi) * the stub stack page. We just have to copy it. */ memcpy(fi, (void *)current_stub_stack(), sizeof(*fi)); + + err = put_fp_registers(pid, fpregs); + if (err < 0) { + printk(UM_KERN_ERR "put_fp_registers returned %d\n", + err); + fatal_sigsegv(); + } } } |
