diff --git a/drivers/xen/blkback/blkback.c b/drivers/xen/blkback/blkback.c
index e9e3de1..a2ac718 100644
--- a/drivers/xen/blkback/blkback.c
+++ b/drivers/xen/blkback/blkback.c
@@ -614,6 +614,7 @@
 static int __init blkif_init(void)
 {
 	int i, mmap_pages;
+	int rc = 0;
 
 	if (!xen_pv_domain())
 		return -ENODEV;
@@ -626,13 +627,17 @@
 					mmap_pages, GFP_KERNEL);
 	pending_pages         = alloc_empty_pages_and_pagevec(mmap_pages);
 
-	if (!pending_reqs || !pending_grant_handles || !pending_pages)
+	if (!pending_reqs || !pending_grant_handles || !pending_pages) {
+		rc = -ENOMEM;
 		goto out_of_memory;
+	}
 
 	for (i = 0; i < mmap_pages; i++)
 		pending_grant_handles[i] = BLKBACK_INVALID_HANDLE;
 
-	blkif_interface_init();
+	rc = blkif_interface_init();
+	if (rc)
+		goto failed_init;
 
 	memset(pending_reqs, 0, sizeof(pending_reqs));
 	INIT_LIST_HEAD(&pending_free);
@@ -640,16 +645,19 @@
 	for (i = 0; i < blkif_reqs; i++)
 		list_add_tail(&pending_reqs[i].free_list, &pending_free);
 
-	blkif_xenbus_init();
+	rc = blkif_xenbus_init();
+	if (rc)
+		goto failed_init;
 
 	return 0;
 
  out_of_memory:
+	printk(KERN_ERR "%s: out of memory\n", __func__);
+ failed_init:
 	kfree(pending_reqs);
 	kfree(pending_grant_handles);
 	free_empty_pages_and_pagevec(pending_pages, mmap_pages);
-	printk("%s: out of memory\n", __FUNCTION__);
-	return -ENOMEM;
+	return rc;
 }
 
 module_init(blkif_init);
