{
        struct ib_device *dev = umem_odp->umem.ibdev;
        dma_addr_t dma_addr;
-       int remove_existing_mapping = 0;
        int ret = 0;
 
        /*
        } else if (umem_odp->page_list[page_index] == page) {
                umem_odp->dma_list[page_index] |= access_mask;
        } else {
-               pr_err("error: got different pages in IB device and from get_user_pages. IB device page: %p, gup page: %p\n",
-                      umem_odp->page_list[page_index], page);
-               /* Better remove the mapping now, to prevent any further
-                * damage. */
-               remove_existing_mapping = 1;
+               /*
+                * This is a race here where we could have done:
+                *
+                *         CPU0                             CPU1
+                *   get_user_pages()
+                *                                       invalidate()
+                *                                       page_fault()
+                *   mutex_lock(umem_mutex)
+                *    page from GUP != page in ODP
+                *
+                * It should be prevented by the retry test above as reading
+                * the seq number should be reliable under the
+                * umem_mutex. Thus something is really not working right if
+                * things get here.
+                */
+               WARN(true,
+                    "Got different pages in IB device and from get_user_pages. IB device page: %p, gup page: %p\n",
+                    umem_odp->page_list[page_index], page);
+               ret = -EAGAIN;
        }
 
 out:
        put_user_page(page);
-
-       if (remove_existing_mapping) {
-               ib_umem_notifier_start_account(umem_odp);
-               dev->ops.invalidate_range(
-                       umem_odp,
-                       ib_umem_start(umem_odp) +
-                               (page_index << umem_odp->page_shift),
-                       ib_umem_start(umem_odp) +
-                               ((page_index + 1) << umem_odp->page_shift));
-               ib_umem_notifier_end_account(umem_odp);
-               ret = -EAGAIN;
-       }
-
        return ret;
 }