From 5be0039ce9e22f140a29e167526c64c723c5be3c Mon Sep 17 00:00:00 2001 From: rtm Date: Thu, 10 Aug 2006 22:08:14 +0000 Subject: interrupts could be recursive since lapic_eoi() called before rti so fast interrupts overflow the kernel stack fix: cli() before lapic_eoi() --- kalloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'kalloc.c') diff --git a/kalloc.c b/kalloc.c index c13a639..989e3e8 100644 --- a/kalloc.c +++ b/kalloc.c @@ -15,7 +15,7 @@ #include "proc.h" #include "spinlock.h" -struct spinlock kalloc_lock = { "kalloc" }; +struct spinlock kalloc_lock; struct run { struct run *next; @@ -37,6 +37,7 @@ kinit(void) uint mem; char *start; + initlock(&kalloc_lock, "kalloc"); start = (char *) &end; start = (char *) (((uint)start + PAGE) & ~(PAGE-1)); mem = 256; // XXX -- cgit v1.2.3