diff --git a/mm/percpu.c b/mm/percpu.c
index efe816856a9d777b284f8bf25cc7548154f374d6..9e16d1c9ebd5e6a05cf91ce21f4b9a248f7d3d4b 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -293,12 +293,8 @@ static void *pcpu_mem_alloc(size_t size)
 
 	if (size <= PAGE_SIZE)
 		return kzalloc(size, GFP_KERNEL);
-	else {
-		void *ptr = vmalloc(size);
-		if (ptr)
-			memset(ptr, 0, size);
-		return ptr;
-	}
+	else
+		return vzalloc(size);
 }
 
 /**