arena: warn instead of panic for free-checks

These checks are signs of bugs, but we can proceed by just returning.
For the size-mismatch, we could try and free the correct size, but since
there is some bug, we should be safe and just not free anything.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/kern/src/arena.c b/kern/src/arena.c
index b51bd4e..ca624aa 100644
--- a/kern/src/arena.c
+++ b/kern/src/arena.c
@@ -1135,12 +1135,16 @@
 
 	spin_lock_irqsave(&arena->lock);
 	bt = __untrack_alloc_seg(arena, (uintptr_t)addr);
-	if (!bt)
-		panic("Free of unallocated addr %p from arena %s", addr,
-		      arena->name);
-	if (bt->size != size)
-		panic("Free of %p with wrong size %p (%p) from arena %s", addr,
+	if (!bt) {
+		warn("Free of unallocated addr %p size %p from arena %s", addr,
+		     arena->name, size);
+		return;
+	}
+	if (bt->size != size) {
+		warn("Free of %p with wrong size %p (%p) from arena %s", addr,
 		      size, bt->size, arena->name);
+		return;
+	}
 	arena->amt_alloc_segs -= size;
 	__track_free_seg(arena, bt);
 	__coalesce_free_seg(arena, bt, &to_free_addr, &to_free_sz);