diff options
author | neal <neal> | 2008-05-24 13:45:14 +0000 |
---|---|---|
committer | neal <neal> | 2008-05-24 13:45:14 +0000 |
commit | 80ae309a1834125c96dbe109bbbd61cba2db35ac (patch) | |
tree | 8757fa09e675d85bc34183e9ff76d36fdca9643d /viengoos | |
parent | c143ef61feb79e9687ebee894719be184564db90 (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/ChangeLog | 5 | ||||
-rw-r--r-- | viengoos/server.c | 25 |
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) { |