@@ -88,12 +88,11 @@ void wait_stub_done(int pid)
8888
8989extern unsigned long current_stub_stack (void );
9090
91- static void get_skas_faultinfo (int pid , struct faultinfo * fi )
91+ static void get_skas_faultinfo (int pid , struct faultinfo * fi , unsigned long * aux_fp_regs )
9292{
9393 int err ;
94- unsigned long fpregs [FP_SIZE ];
9594
96- err = get_fp_registers (pid , fpregs );
95+ err = get_fp_registers (pid , aux_fp_regs );
9796 if (err < 0 ) {
9897 printk (UM_KERN_ERR "save_fp_registers returned %d\n" ,
9998 err );
@@ -113,17 +112,17 @@ static void get_skas_faultinfo(int pid, struct faultinfo *fi)
113112 */
114113 memcpy (fi , (void * )current_stub_stack (), sizeof (* fi ));
115114
116- err = put_fp_registers (pid , fpregs );
115+ err = put_fp_registers (pid , aux_fp_regs );
117116 if (err < 0 ) {
118117 printk (UM_KERN_ERR "put_fp_registers returned %d\n" ,
119118 err );
120119 fatal_sigsegv ();
121120 }
122121}
123122
124- static void handle_segv (int pid , struct uml_pt_regs * regs )
123+ static void handle_segv (int pid , struct uml_pt_regs * regs , unsigned long * aux_fp_regs )
125124{
126- get_skas_faultinfo (pid , & regs -> faultinfo );
125+ get_skas_faultinfo (pid , & regs -> faultinfo , aux_fp_regs );
127126 segv (regs -> faultinfo , 0 , 1 , NULL );
128127}
129128
@@ -332,7 +331,7 @@ int start_userspace(unsigned long stub_stack)
332331 return err ;
333332}
334333
335- void userspace (struct uml_pt_regs * regs )
334+ void userspace (struct uml_pt_regs * regs , unsigned long * aux_fp_regs )
336335{
337336 int err , status , op , pid = userspace_pid [0 ];
338337 /* To prevent races if using_sysemu changes under us.*/
@@ -407,11 +406,11 @@ void userspace(struct uml_pt_regs *regs)
407406 case SIGSEGV :
408407 if (PTRACE_FULL_FAULTINFO ) {
409408 get_skas_faultinfo (pid ,
410- & regs -> faultinfo );
409+ & regs -> faultinfo , aux_fp_regs );
411410 (* sig_info [SIGSEGV ])(SIGSEGV , (struct siginfo * )& si ,
412411 regs );
413412 }
414- else handle_segv (pid , regs );
413+ else handle_segv (pid , regs , aux_fp_regs );
415414 break ;
416415 case SIGTRAP + 0x80 :
417416 handle_trap (pid , regs , local_using_sysemu );
0 commit comments