From bc2e070797048d4ec8b2f1d8562461d7d2c5297d Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Thu, 14 Dec 2017 13:42:49 +0000 Subject: [PATCH] process: re-arrange code for clarity --- Kernel/process.c | 59 +++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 31 deletions(-) diff --git a/Kernel/process.c b/Kernel/process.c index 70c0d7b4..0e1a908b 100644 --- a/Kernel/process.c +++ b/Kernel/process.c @@ -259,40 +259,37 @@ ptptr ptab_alloc(void) for (p = ptab; p < ptab_end; p++) if (p->p_status == P_EMPTY) { newp = p; - break; - } - - if (newp) { /* found a slot? */ - /* zero process structure */ - memset(newp, 0, sizeof(struct p_tab)); - - /* select a unique pid */ - while (newp->p_pid == 0) { - if (nextpid++ > MAXPID) - nextpid = 20; - newp->p_pid = nextpid; - - for (p = ptab; p < ptab_end; p++) - if (p->p_status != P_EMPTY - && p->p_pid == nextpid) { - newp->p_pid = 0; /* try again */ - break; - } + /* zero process structure */ + memset(newp, 0, sizeof(struct p_tab)); + + /* select a unique pid */ + while (newp->p_pid == 0) { + if (nextpid++ > MAXPID) + nextpid = 20; + newp->p_pid = nextpid; + + for (p = ptab; p < ptab_end; p++) + if (p->p_status != P_EMPTY + && p->p_pid == nextpid) { + newp->p_pid = 0; /* try again */ + break; + } + } + newp->p_top = udata.u_top; + if (pagemap_alloc(newp) == 0) { + newp->p_status = P_FORKING; + nproc++; + } else { + udata.u_error = ENOMEM; + newp = NULL; + } + newp->p_pgrp = udata.u_ptab->p_pgrp; + memcpy(newp->p_name, udata.u_ptab->p_name, sizeof(newp->p_name)); + udata.u_error = 0; + break; } - newp->p_top = udata.u_top; - if (pagemap_alloc(newp) == 0) { - newp->p_status = P_FORKING; - nproc++; - } else { - udata.u_error = ENOMEM; - newp = NULL; - } - newp->p_pgrp = udata.u_ptab->p_pgrp; - memcpy(newp->p_name, udata.u_ptab->p_name, sizeof(newp->p_name)); } irqrestore(irq); - if (newp) - udata.u_error = 0; return newp; } -- 2.34.1