Index: kernel/generic/src/mm/frame.c
===================================================================
--- kernel/generic/src/mm/frame.c	(revision 5df19638ae7b362a07b4f8c7b1647a3adcb53862)
+++ kernel/generic/src/mm/frame.c	(revision 26bc0fd10fa2579b9b192f6dd165b50194fcedc4)
@@ -374,4 +374,5 @@
 		return;
 	
+	frame->refcount = 1;
 	bitmap_set_range(&zone->bitmap, index, 1);
 	
Index: kernel/generic/src/mm/slab.c
===================================================================
--- kernel/generic/src/mm/slab.c	(revision 5df19638ae7b362a07b4f8c7b1647a3adcb53862)
+++ kernel/generic/src/mm/slab.c	(revision 26bc0fd10fa2579b9b192f6dd165b50194fcedc4)
@@ -182,8 +182,10 @@
 	size_t zone = 0;
 	
-	void *data = (void *)
-	    PA2KA(frame_alloc_generic(cache->frames, flags, 0, &zone));
-	if (!data)
+	uintptr_t data_phys =
+	    frame_alloc_generic(cache->frames, flags, 0, &zone);
+	if (!data_phys)
 		return NULL;
+	
+	void *data = (void *) PA2KA(data_phys);
 	
 	slab_t *slab;
