schedule_delayed_work(&tcmu_unmap_work, 0);
 
                /* try to get new page from the mm */
-               page = alloc_page(GFP_KERNEL);
+               page = alloc_page(GFP_NOIO);
                if (!page)
                        goto err_alloc;
 
        struct tcmu_dev *udev = TCMU_DEV(se_dev);
        struct tcmu_cmd *tcmu_cmd;
 
-       tcmu_cmd = kmem_cache_zalloc(tcmu_cmd_cache, GFP_KERNEL);
+       tcmu_cmd = kmem_cache_zalloc(tcmu_cmd_cache, GFP_NOIO);
        if (!tcmu_cmd)
                return NULL;
 
        tcmu_cmd_reset_dbi_cur(tcmu_cmd);
        tcmu_cmd->dbi_cnt = tcmu_cmd_get_block_cnt(tcmu_cmd);
        tcmu_cmd->dbi = kcalloc(tcmu_cmd->dbi_cnt, sizeof(uint32_t),
-                               GFP_KERNEL);
+                               GFP_NOIO);
        if (!tcmu_cmd->dbi) {
                kmem_cache_free(tcmu_cmd_cache, tcmu_cmd);
                return NULL;