per_mm->mm = mm;
        per_mm->umem_tree = RB_ROOT_CACHED;
        init_rwsem(&per_mm->umem_rwsem);
-       per_mm->active = ctx->invalidate_range;
+       per_mm->active = true;
 
        rcu_read_lock();
        per_mm->tgid = get_task_pid(current->group_leader, PIDTYPE_PID);
        struct ib_umem *umem = &umem_odp->umem;
        struct ib_device *dev = umem->context->device;
        dma_addr_t dma_addr;
-       int stored_page = 0;
        int remove_existing_mapping = 0;
        int ret = 0;
 
                umem_odp->dma_list[page_index] = dma_addr | access_mask;
                umem_odp->page_list[page_index] = page;
                umem->npages++;
-               stored_page = 1;
        } else if (umem_odp->page_list[page_index] == page) {
                umem_odp->dma_list[page_index] |= access_mask;
        } else {
        }
 
 out:
-       /* On Demand Paging - avoid pinning the page */
-       if (umem->context->invalidate_range || !stored_page)
-               put_page(page);
+       put_page(page);
 
-       if (remove_existing_mapping && umem->context->invalidate_range) {
+       if (remove_existing_mapping) {
                ib_umem_notifier_start_account(umem_odp);
                umem->context->invalidate_range(
                        umem_odp,
                                 */
                                set_page_dirty(head_page);
                        }
-                       /* on demand pinning support */
-                       if (!umem->context->invalidate_range)
-                               put_page(page);
                        umem_odp->page_list[idx] = NULL;
                        umem_odp->dma_list[idx] = 0;
                        umem->npages--;