mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-30 08:03:59 +00:00
Kernel patch is obsolete.
With revision 37569cd43f82bb54f9e621163c4b0eb662bd1a51 of the NOVA kernel the patch isn't required anymore.
This commit is contained in:
parent
80a15fde30
commit
1a2cce22ac
@ -1,21 +1,2 @@
|
|||||||
This directory contains patches for the Nova Hypervisor prerelease 0.3
|
This directory contains patches for the NOVA microhypervisor @ github
|
||||||
|
required for using this kernel with Genode.
|
||||||
:'utcb.patch':
|
|
||||||
|
|
||||||
It is not possible to destroy UTCBs in NOVA 0.3. Therefore UTCBs cannot be
|
|
||||||
re-used which may lead to the exhaustion of contexts within Genode. This patch
|
|
||||||
simply causes NOVA to ignore this issue.
|
|
||||||
|
|
||||||
|
|
||||||
Applying the patches
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
To apply a patch to the NOVA hypervisor, use the 'patch' command. First check
|
|
||||||
the directory given at the header of the patch. It may contain a directory
|
|
||||||
prefix (such as 'a/'), which does not actually exist. This prefix is usually
|
|
||||||
generated by the tool used to create the patch. In this case, use the '-p'
|
|
||||||
option of the patch command. To apply the patch with the first part of the
|
|
||||||
path stripped, issue the following command (make sure that you changed to
|
|
||||||
the base directory of the NOVA hypervisor):
|
|
||||||
|
|
||||||
! patch -p1 < /path/to/utcb.patch
|
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
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
|
|
||||||
@@ -244,11 +244,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>) : nullptr, r->cpu(), r->evt(), r->utcb(), r->esp());
|
|
||||||
|
|
||||||
if (!Space_obj::insert_root (ec)) {
|
|
Loading…
x
Reference in New Issue
Block a user