summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2014-08-15 20:55:19 +0200
committerRichard Braun <rbraun@sceen.net>2014-08-15 20:55:19 +0200
commit40502c5f7465300b2bc0cb44325db38b23449deb (patch)
treea820b4d136c20b70e25fc8e2652a08e27c8331fa
parent6d1f6eefcee5fad60b5b674135996414ecc17a2d (diff)
kern/printk: don't use static spin lock initializer
-rw-r--r--arch/x86/machine/boot.c1
-rw-r--r--kern/printk.c8
-rw-r--r--kern/printk.h1
3 files changed, 9 insertions, 1 deletions
diff --git a/arch/x86/machine/boot.c b/arch/x86/machine/boot.c
index 77b0d10e..4b946596 100644
--- a/arch/x86/machine/boot.c
+++ b/arch/x86/machine/boot.c
@@ -273,6 +273,7 @@ boot_main(void)
thread_bootstrap();
pmap_bootstrap();
cga_setup();
+ printk_setup();
boot_show_version();
cpu_check(cpu_current());
cpu_info(cpu_current());
diff --git a/kern/printk.c b/kern/printk.c
index 6d1b9754..df3ba715 100644
--- a/kern/printk.c
+++ b/kern/printk.c
@@ -31,7 +31,7 @@
extern void console_write_byte(char c);
static char printk_buffer[PRINTK_BUFSIZE];
-static struct spinlock printk_lock = SPINLOCK_INITIALIZER;
+static struct spinlock printk_lock;
int
printk(const char *format, ...)
@@ -64,3 +64,9 @@ vprintk(const char *format, va_list ap)
return length;
}
+
+void
+printk_setup(void)
+{
+ spinlock_init(&printk_lock);
+}
diff --git a/kern/printk.h b/kern/printk.h
index c86384bd..02173b33 100644
--- a/kern/printk.h
+++ b/kern/printk.h
@@ -33,5 +33,6 @@
int printk(const char *format, ...) __format_printf(1, 2);
int vprintk(const char *format, va_list ap) __format_printf(1, 0);
+void printk_setup(void);
#endif /* _KERN_PRINTK_H */