diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 60f7c6122d6e00eeae2053a8a86d4f954b88a099..3d0346dbccf42c6d1c0b4007120c684c5fbc6c85 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -393,12 +393,8 @@ void __init mem_init(void)
 			SetPageReserved(page);
 			continue;
 		}
-		ClearPageReserved(page);
-		init_page_count(page);
-		__free_page(page);
-		totalhigh_pages++;
+		free_highmem_page(page);
 	}
-	totalram_pages += totalhigh_pages;
 	num_physpages += totalhigh_pages;
 #endif