summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeal H. Walfield <neal@gnu.org>2008-12-16 19:36:51 +0100
committerNeal H. Walfield <neal@gnu.org>2008-12-16 19:36:51 +0100
commitef89b0b04a2daf78eb2990b459454f34da05ffc2 (patch)
tree0db2aa87c66f6279b0b12fefc2f9cd9fc4ebb457
parentc9d479f7676e3044edfe9d2e8714952f9c6cecea (diff)
Only set the source messenger's message buffer if the message is not inline.
2008-12-16 Neal H. Walfield <neal@gnu.org> * server.c (server_loop): Only set SOURCE->BUFFER if the message is not inline.
-rw-r--r--viengoos/ChangeLog5
-rw-r--r--viengoos/server.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/viengoos/ChangeLog b/viengoos/ChangeLog
index 8e8eb27..26b8bf9 100644
--- a/viengoos/ChangeLog
+++ b/viengoos/ChangeLog
@@ -1,3 +1,8 @@
+2008-12-16 Neal H. Walfield <neal@gnu.org>
+
+ * server.c (server_loop): Only set SOURCE->BUFFER if the message
+ is not inline.
+
2008-12-12 Neal H. Walfield <neal@gnu.org>
* server.c (server_loop): Fix the activity_policy implementation
diff --git a/viengoos/server.c b/viengoos/server.c
index 770a465..9a46efa 100644
--- a/viengoos/server.c
+++ b/viengoos/server.c
@@ -832,7 +832,8 @@ server_loop (void)
REPLY (ENOENT);
}
- if (unlikely (! ADDR_IS_VOID (send_buf)))
+ if (! (flags & VG_IPC_SEND_INLINE)
+ && unlikely (! ADDR_IS_VOID (send_buf)))
source->buffer = CAP (&thread->aspace, send_buf, cap_page, true);
if (unlikely ((flags & VG_IPC_SEND_SET_THREAD_TO_CALLER)))