process: re-arrange code for clarity
authorAlan Cox <alan@linux.intel.com>
Thu, 14 Dec 2017 13:42:49 +0000 (13:42 +0000)
committerAlan Cox <alan@linux.intel.com>
Thu, 14 Dec 2017 13:42:49 +0000 (13:42 +0000)
Kernel/process.c

index 70c0d7b..0e1a908 100644 (file)
@@ -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;
 }