diff --git a/drivers/edac/wq.c b/drivers/edac/wq.c
index 1b8c07e44fd8fd71558780347205e2cca4995ff4..2a9a11ae246156c7ccef414e5a50ea2b33867325 100644
--- a/drivers/edac/wq.c
+++ b/drivers/edac/wq.c
@@ -27,7 +27,7 @@ EXPORT_SYMBOL_GPL(edac_stop_work);
 
 int edac_workqueue_setup(void)
 {
-	wq = create_singlethread_workqueue("edac-poller");
+	wq = alloc_ordered_workqueue("edac-poller", WQ_MEM_RECLAIM);
 	if (!wq)
 		return -ENODEV;
 	else