Index: kernel/generic/include/lib/ra.h
===================================================================
--- kernel/generic/include/lib/ra.h	(revision 12cb03dd6e73558b6ca75313281ad3e66041b239)
+++ kernel/generic/include/lib/ra.h	(revision 3342f333f2f11756a7935b9fe1f8accd90e6ef52)
@@ -39,6 +39,8 @@
 #include <adt/list.h>
 #include <adt/hash_table.h>
+#include <synch/spinlock.h>
 
 typedef struct {
+	SPINLOCK_DECLARE(lock);
 	list_t spans;		/**< List of arena's spans. */
 } ra_arena_t;
Index: kernel/generic/src/lib/ra.c
===================================================================
--- kernel/generic/src/lib/ra.c	(revision 12cb03dd6e73558b6ca75313281ad3e66041b239)
+++ kernel/generic/src/lib/ra.c	(revision 3342f333f2f11756a7935b9fe1f8accd90e6ef52)
@@ -53,4 +53,5 @@
 #include <align.h>
 #include <macros.h>
+#include <synch/spinlock.h>
 
 #define USED_BUCKETS	1024
@@ -197,4 +198,5 @@
 	}
 
+	spinlock_initialize(&arena->lock, "arena_lock");
 	list_initialize(&arena->spans);
 	list_append(&span->span_link, &arena->spans);
@@ -216,5 +218,7 @@
 
 	/* TODO: check for overlaps */
+	spinlock_lock(&arena->lock);
 	list_append(&span->span_link, &arena->spans);
+	spinlock_unlock(&arena->lock);
 	return true;
 }
@@ -395,4 +399,5 @@
 	ASSERT(ispwr2(alignment));
 
+	spinlock_lock(&arena->lock);
 	list_foreach(arena->spans, cur) {
 		ra_span_t *span = list_get_instance(cur, ra_span_t, span_link);
@@ -402,4 +407,5 @@
 			break;
 	}
+	spinlock_unlock(&arena->lock);
 
 	return base;
@@ -409,4 +415,5 @@
 void ra_free(ra_arena_t *arena, uintptr_t base, size_t size)
 {
+	spinlock_lock(&arena->lock);
 	list_foreach(arena->spans, cur) {
 		ra_span_t *span = list_get_instance(cur, ra_span_t, span_link);
@@ -414,7 +421,9 @@
 		if (iswithin(span->base, span->size, base, size)) {
 			ra_span_free(span, base, size);
+			spinlock_unlock(&arena->lock);
 			return;
 		}
 	}
+	spinlock_unlock(&arena->lock);
 
 	panic("Freeing to wrong arena (base=%" PRIxn ", size=%" PRIdn ").",
