diff --git a/core/mmu.cc b/core/mmu.cc
index d953c6520664535c2564080bbdb04f10b4b60c3a..02418d6d21f4229c190d6c32d41c88c58c3b8602 100644
--- a/core/mmu.cc
+++ b/core/mmu.cc
@@ -1050,7 +1050,7 @@ void anon_vma::fault(uintptr_t addr, exception_frame *ef)
 }
 
 jvm_balloon_vma::jvm_balloon_vma(uintptr_t start, uintptr_t end, balloon *b)
-    : vma(addr_range(start, end), mmu::perm_read, 0), _balloon(b)
+    : vma(addr_range(start, end), perm_rw, 0), _balloon(b)
 {
 }