diff
--- a/drivers/vmbus/vmbus.c
+++ b/drivers/vmbus/vmbus.c
@@ -62,20 +62,22 @@
 61 	 */
 62 	vmbus_connection.monitor_pages[0] = hv_alloc_hyperv_page();
 63 	vmbus_connection.monitor_pages[1] = hv_alloc_hyperv_page();
-64 	if (vmbus_connection.monitor_pages[0] == NULL) {
+64 	if (vmbus_connection.monitor_pages[0] == NULL) 
+        goto alloc_error;
+    if (vmbus_connection.monitor_pages[1] == NULL)
+        goto alloc_error;
+
+    ret = set_memory_decrypted((unsigned long)
+71 				vmbus_connection.monitor_pages[0], 1);
+    if (ret) 
+        goto alloc_error;
+
+	ret = set_memory_decrypted((unsigned long)
+73 				vmbus_connection.monitor_pages[1], 1);
+    if (ret) 
+        goto alloc_error;
+
+alloc_error:
 66 		ret = -ENOMEM;
 67 		goto cleanup;
-68 	}
-    if (vmbus_connection.monitor_pages[1] == NULL) {
-        ret = -ENOMEM;
-        goto cleanup;
-    }
-69 
-    ret = set_memory_decrypted((unsigned long)
-71 				vmbus_connection.monitor_pages[0], 1);
-    if (ret) {
-        goto cleanup;
-    }
-
-	ret = set_memory_decrypted((unsigned long)
-73 				vmbus_connection.monitor_pages[1], 1);
-    if (ret) {
-        goto cleanup;
-    }
-
-75 		goto cleanup;
 77 	/*
 78 	 * Set_memory_decrypted() will change the memory contents if
 79 	 * decryption occurs, so zero monitor pages here.

