]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/kern/ia32/32/thread-ia32-32.cpp
update
[l4.git] / kernel / fiasco / src / kern / ia32 / 32 / thread-ia32-32.cpp
index a8be398bd66df6f4e9b0b3dff4c6fcb94f2d19fd..bb0da1e1a9c89104713a327adf62ed8f63e75093 100644 (file)
@@ -10,6 +10,7 @@ Thread::fast_return_to_user(Mword ip, Mword sp, T arg)
 
   regs()->ip(ip);
   regs()->sp(sp);
+  regs()->flags(EFLAGS_IF);
   asm volatile
     ("mov %0, %%esp \t\n"
      "iret         \t\n"
@@ -290,7 +291,7 @@ Thread::invoke_arch(L4_msg_tag &tag, Utcb *utcb)
           if (this == current_thread())
             switch_gdt_user_entries(this);
 
-          tag = Kobject_iface::commit_result(0);
+          tag = Kobject_iface::commit_result((utcb->values[1] << 3) + Gdt::gdt_user_entry1 + 3);
           return true;
         }