From 3d145283a25ed9dcd8e0544e3db9d6733ab7d8b7 Mon Sep 17 00:00:00 2001
From: rsc <rsc>
Date: Fri, 10 Aug 2007 17:02:36 +0000
Subject: [PATCH] tweak kalloc

---
 kalloc.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/kalloc.c b/kalloc.c
index cc2faac..00c15bc 100644
--- a/kalloc.c
+++ b/kalloc.c
@@ -47,9 +47,7 @@ kinit(void)
 void
 kfree(char *v, int len)
 {
-  struct run **rr;
-  struct run *p = (struct run*)v;
-  struct run *pend = (struct run*)(v + len);
+  struct run **rr, *p, *pend;
 
   if(len % PAGE)
     panic("kfree");
@@ -58,7 +56,8 @@ kfree(char *v, int len)
   memset(v, 1, len);
 
   acquire(&kalloc_lock);
-
+  p = (struct run*)v;
+  pend = (struct run*)(v + len);
   rr = &freelist;
   while(*rr){
     struct run *rend = (struct run*) ((char*)(*rr) + (*rr)->len);
@@ -100,7 +99,8 @@ kfree(char *v, int len)
 char*
 kalloc(int n)
 {
-  struct run **rr;
+  char *p;
+  struct run *r, **rr;
 
   if(n % PAGE)
     panic("kalloc");
@@ -109,15 +109,15 @@ kalloc(int n)
 
   rr = &freelist;
   while(*rr){
-    struct run *r = *rr;
+    r = *rr;
     if(r->len == n){
       *rr = r->next;
       release(&kalloc_lock);
       return (char*) r;
     }
     if(r->len > n){
-      char *p = (char*)r + (r->len - n);
       r->len -= n;
+      p = (char*)r + r->len;
       release(&kalloc_lock);
       return p;
     }
-- 
GitLab