From a4282e2033b536d2cf626575bfe3c4640996f1ba Mon Sep 17 00:00:00 2001 From: Stefan Kalkowski Date: Thu, 3 May 2012 11:15:55 +0200 Subject: [PATCH] Fiasco.OC: fix l4_task_cap_equal semantic. The syscall l4_task_cap_equal almost returns false although the referenced kernel-objects are equal. This patch changes the semantic of the syscall so that whenever two capabilities refering the same kernel-object are compared it will return true. Please refer to the discussion of the following mail thread: http://www.mail-archive.com/l4-hackers@os.inf.tu-dresden.de/msg05162.html --- base-foc/patches/foc_caps_equal.patch | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 base-foc/patches/foc_caps_equal.patch diff --git a/base-foc/patches/foc_caps_equal.patch b/base-foc/patches/foc_caps_equal.patch new file mode 100644 index 000000000..fa4da4e43 --- /dev/null +++ b/base-foc/patches/foc_caps_equal.patch @@ -0,0 +1,13 @@ +Index: kernel/fiasco/src/kern/task.cpp +=================================================================== +--- kernel/fiasco/src/kern/task.cpp (revision 38) ++++ kernel/fiasco/src/kern/task.cpp (working copy) +@@ -511,7 +511,7 @@ + Obj_space::Capability c_a = obj_space()->lookup(obj_a.cap()); + Obj_space::Capability c_b = obj_space()->lookup(obj_b.cap()); + +- return commit_result(c_a == c_b); ++ return commit_result(c_a.obj()->kobject_start_addr() == c_b.obj()->kobject_start_addr()); + } + + PRIVATE inline NOEXPORT