diff --git a/mm/vmscan.c b/mm/vmscan.c
index f6fdae7a8d4c069e601c32b2179f2ff1b365d402..d16bf5a5326614e54cc37cedffc8a697a16b17fa 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -3126,9 +3126,9 @@ int kswapd_run(int nid)
 	if (IS_ERR(pgdat->kswapd)) {
 		/* failure at boot is fatal */
 		BUG_ON(system_state == SYSTEM_BOOTING);
-		printk("Failed to start kswapd on node %d\n",nid);
 		pgdat->kswapd = NULL;
-		ret = -1;
+		pr_err("Failed to start kswapd on node %d\n", nid);
+		ret = PTR_ERR(pgdat->kswapd);
 	}
 	return ret;
 }