[BACK]Return to linux32_machdep.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / compat / linux32 / arch / amd64

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/compat/linux32/arch/amd64/linux32_machdep.c between version 1.43 and 1.44

version 1.43, 2017/10/21 07:24:26 version 1.44, 2019/03/24 15:58:32
Line 287  linux32_setregs(struct lwp *l, struct ex
Line 287  linux32_setregs(struct lwp *l, struct ex
   
         fpu_save_area_clear(l, __Linux_NPXCW__);          fpu_save_area_clear(l, __Linux_NPXCW__);
   
         l->l_md.md_flags = MDL_COMPAT32;        /* Forces iret not sysret */          kpreempt_disable();
         pcb->pcb_flags = PCB_COMPAT32;          pcb->pcb_flags = PCB_COMPAT32;
   
         p->p_flag |= PK_32;          p->p_flag |= PK_32;
           l->l_md.md_flags = MDL_COMPAT32;        /* force iret not sysret */
           cpu_segregs32_zero(l);
           cpu_fsgs_reload(l, GSEL(GUDATA32_SEL, SEL_UPL),
               GSEL(GUDATA32_SEL, SEL_UPL));
           kpreempt_enable();
   
         tf = l->l_md.md_regs;          tf = l->l_md.md_regs;
         tf->tf_rax = 0;          tf->tf_rax = 0;
Line 315  linux32_setregs(struct lwp *l, struct ex
Line 319  linux32_setregs(struct lwp *l, struct ex
         tf->tf_ss = GSEL(GUDATA32_SEL, SEL_UPL);          tf->tf_ss = GSEL(GUDATA32_SEL, SEL_UPL);
         tf->tf_ds = GSEL(GUDATA32_SEL, SEL_UPL);          tf->tf_ds = GSEL(GUDATA32_SEL, SEL_UPL);
         tf->tf_es = GSEL(GUDATA32_SEL, SEL_UPL);          tf->tf_es = GSEL(GUDATA32_SEL, SEL_UPL);
         cpu_segregs32_zero(l);  
         cpu_fsgs_reload(l, GSEL(GUDATA32_SEL, SEL_UPL), GSEL(GUDATA32_SEL, SEL_UPL));  
 }  }
   
 static void  static void

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44

CVSweb <webmaster@jp.NetBSD.org>