mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 06:07:59 +00:00
19 lines
778 B
Diff
19 lines
778 B
Diff
diff -r 11c290b5edf9 src/syscall.cpp
|
|
--- a/src/syscall.cpp Wed Nov 09 14:50:18 2011 +0100
|
|
+++ b/src/syscall.cpp Wed Nov 09 15:07:03 2011 +0100
|
|
@@ -240,11 +240,13 @@
|
|
}
|
|
Pd *pd = static_cast<Pd *>(cap.obj());
|
|
|
|
- if (EXPECT_FALSE (r->utcb() >= USER_ADDR || r->utcb() & PAGE_MASK || !pd->insert_utcb (r->utcb()))) {
|
|
+ if (EXPECT_FALSE (r->utcb() >= USER_ADDR || r->utcb() & PAGE_MASK)) {
|
|
trace (TRACE_ERROR, "%s: Invalid UTCB address (%#lx)", __func__, r->utcb());
|
|
sys_finish<Sys_regs::BAD_PAR>();
|
|
}
|
|
|
|
+ pd->insert_utcb (r->utcb());
|
|
+
|
|
Ec *ec = new Ec (Pd::current, r->sel(), pd, r->flags() & 1 ? static_cast<void (*)()>(send_msg<ret_user_iret>) : 0, r->cpu(), r->evt(), r->utcb(), r->esp());
|
|
|
|
if (!Space_obj::insert_root (ec)) {
|