summaryrefslogtreecommitdiff
path: root/viengoos
diff options
context:
space:
mode:
authorneal <neal>2008-05-24 13:45:14 +0000
committerneal <neal>2008-05-24 13:45:14 +0000
commit80ae309a1834125c96dbe109bbbd61cba2db35ac (patch)
tree8757fa09e675d85bc34183e9ff76d36fdca9643d /viengoos
parentc143ef61feb79e9687ebee894719be184564db90 (diff)
2008-05-24 Neal H. Walfield <neal@gnu.org>
* server.c (server_loop): When we need a principal, use PRINCIPAL, not ACTIVITY.
Diffstat (limited to 'viengoos')
-rw-r--r--viengoos/ChangeLog5
-rw-r--r--viengoos/server.c25
2 files changed, 20 insertions, 10 deletions
diff --git a/viengoos/ChangeLog b/viengoos/ChangeLog
index 7589878..90342d7 100644
--- a/viengoos/ChangeLog
+++ b/viengoos/ChangeLog
@@ -1,5 +1,10 @@
2008-05-24 Neal H. Walfield <neal@gnu.org>
+ * server.c (server_loop): When we need a principal, use PRINCIPAL,
+ not ACTIVITY.
+
+2008-05-24 Neal H. Walfield <neal@gnu.org>
+
* object.c (object_desc_claim): Fix debug statement, ACTIVITY may
be NULL.
diff --git a/viengoos/server.c b/viengoos/server.c
index 937cdc5..849be95 100644
--- a/viengoos/server.c
+++ b/viengoos/server.c
@@ -97,14 +97,19 @@ server_loop (void)
/* Unless explicitly overridden, don't reply. */
do_reply = 0;
+ debug (5, "%x (p: %d, %x) sent %s (%x)",
+ from, l4_ipc_propagated (msg_tag), l4_actual_sender (),
+ (l4_is_pagefault (msg_tag) ? "pagefault"
+ : rm_method_id_string (label)),
+ label);
+
if (l4_version (l4_myself ()) == l4_version (from))
/* Message from a kernel thread. */
- {
- if (! l4_is_pagefault (msg_tag))
- panic ("Kernel thread sent non-page fault message?!");
-
- panic ("Kernel thread faulted!");
- }
+ panic ("Kernel thread %x (propagated: %d, actual: %x) sent %s? (%x)!",
+ from, l4_ipc_propagated (msg_tag), l4_actual_sender (),
+ (l4_is_pagefault (msg_tag) ? "pagefault"
+ : rm_method_id_string (label)),
+ label);
ss_mutex_lock (&kernel_lock);
have_lock = true;
@@ -769,7 +774,7 @@ server_loop (void)
respect any subpag specification for cappages. */
struct cap source = CAP (root, source_addr, -1, false);
- struct object *object = cap_to_object (activity, &source);
+ struct object *object = cap_to_object (principal, &source);
if (! object)
REPLY (EINVAL);
@@ -1017,11 +1022,11 @@ server_loop (void)
int i;
for (i = 0; i < ACTIVITY_STATS_PERIODS; i ++)
{
- int period = activity->current_period - 1 - i;
+ int period = principal->current_period - 1 - i;
if (period < 0)
period = ACTIVITY_STATS_PERIODS + period;
- buffer.stats[i] = activity->stats[period];
+ buffer.stats[i] = principal->stats[period];
}
rm_activity_stats_reply_marshal (&msg,
@@ -1143,7 +1148,7 @@ server_loop (void)
char *mode = "unknown";
- struct object *page = cap_to_object (activity,
+ struct object *page = cap_to_object (principal,
&thread->exception_page);
if (page && object_type (page) == cap_page)
{