static int work_start(void)
 {
-       recv_workqueue = create_singlethread_workqueue("dlm_recv");
+       recv_workqueue = alloc_workqueue("dlm_recv",
+                                        WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
        if (!recv_workqueue) {
                log_print("can't start dlm_recv");
                return -ENOMEM;
        }
 
-       send_workqueue = create_singlethread_workqueue("dlm_send");
+       send_workqueue = alloc_workqueue("dlm_send",
+                                        WQ_UNBOUND | WQ_MEM_RECLAIM, 1);
        if (!send_workqueue) {
                log_print("can't start dlm_send");
                destroy_workqueue(recv_workqueue);