summaryrefslogtreecommitdiff
path: root/proc
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2013-11-26 17:33:05 +0100
committerJustus Winter <4winter@informatik.uni-hamburg.de>2013-11-28 13:14:29 +0100
commit2c9422595f41635e2f4f7ef1afb7eece9001feae (patch)
tree11cfab857181be05d9bd6ecf002f1a0c5488ae22 /proc
parent6d1f5176f257ab9a9b47ae65b528c9ab79db5b31 (diff)
proc: store the privileged host port in _hurd_host_priv
Store the privileged host port in _hurd_host_priv like it is done in the root filesystem. This fixes the thread priority adjustment in the proc server. Prior to this fix, a warning message "unable to adjust libports thread priority" sometimes appeared early in the boot process. * proc/host.c (S_proc_getprivports): Adapt accordingly. (S_proc_register_version): Likewise. * proc/mgt.c (add_tasks): Likewise. * proc/msg.c (tickle_init): Likewise. * proc/main.c (main): Store the privileged host port in _hurd_host_priv. * proc/proc.h: Remove unused variable master_host_port. fixup_store_priv_port
Diffstat (limited to 'proc')
-rw-r--r--proc/host.c4
-rw-r--r--proc/main.c4
-rw-r--r--proc/mgt.c2
-rw-r--r--proc/msg.c2
-rw-r--r--proc/proc.h1
5 files changed, 6 insertions, 7 deletions
diff --git a/proc/host.c b/proc/host.c
index 488863bb0..b5c93b478 100644
--- a/proc/host.c
+++ b/proc/host.c
@@ -70,7 +70,7 @@ S_proc_getprivports (struct proc *p,
if (! check_uid (p, 0))
return EPERM;
- *hostpriv = master_host_port;
+ *hostpriv = _hurd_host_priv;
*devpriv = master_device_port;
return 0;
}
@@ -419,7 +419,7 @@ S_proc_register_version (pstruct_t server,
/* No need to check SERVER here; we don't use it. */
- if (credential != master_host_port)
+ if (credential != _hurd_host_priv)
/* Must be privileged to register for uname. */
return EPERM;
diff --git a/proc/main.c b/proc/main.c
index 6b18737ae..7be89ce49 100644
--- a/proc/main.c
+++ b/proc/main.c
@@ -92,7 +92,7 @@ main (int argc, char **argv, char **envp)
startup_port = ports_get_send_right (startup_proc);
err = startup_procinit (boot, startup_port, &startup_proc->p_task,
- &authserver, &master_host_port, &master_device_port);
+ &authserver, &_hurd_host_priv, &master_device_port);
assert_perror (err);
mach_port_deallocate (mach_task_self (), startup_port);
@@ -111,7 +111,7 @@ main (int argc, char **argv, char **envp)
important. */
err = thread_get_assignment (mach_thread_self (), &pset);
assert_perror (err);
- err = host_processor_set_priv (master_host_port, pset, &psetcntl);
+ err = host_processor_set_priv (_hurd_host_priv, pset, &psetcntl);
assert_perror (err);
thread_max_priority (mach_thread_self (), psetcntl, 0);
assert_perror (err);
diff --git a/proc/mgt.c b/proc/mgt.c
index 11b2f3970..602ba84a2 100644
--- a/proc/mgt.c
+++ b/proc/mgt.c
@@ -828,7 +828,7 @@ add_tasks (task_t task)
if (!foundp)
{
- host_processor_set_priv (master_host_port, psets[i], &psetpriv);
+ host_processor_set_priv (_hurd_host_priv, psets[i], &psetpriv);
processor_set_tasks (psetpriv, &tasks, &ntasks);
for (j = 0; j < ntasks; j++)
{
diff --git a/proc/msg.c b/proc/msg.c
index a6eca218f..796cae38f 100644
--- a/proc/msg.c
+++ b/proc/msg.c
@@ -40,7 +40,7 @@ static void *
tickle_init (void *initport)
{
startup_essential_task ((mach_port_t) initport, mach_task_self (),
- MACH_PORT_NULL, "proc", master_host_port);
+ MACH_PORT_NULL, "proc", _hurd_host_priv);
return NULL;
}
diff --git a/proc/proc.h b/proc/proc.h
index d528a7dd8..783aba9a3 100644
--- a/proc/proc.h
+++ b/proc/proc.h
@@ -141,7 +141,6 @@ struct port_class *proc_class;
struct port_class *generic_port_class;
struct port_class *exc_class;
-mach_port_t master_host_port;
mach_port_t master_device_port;
mach_port_t generic_port; /* messages not related to a specific proc */