prange->last = last;
        INIT_LIST_HEAD(&prange->list);
        INIT_LIST_HEAD(&prange->update_list);
-       INIT_LIST_HEAD(&prange->remove_list);
        INIT_LIST_HEAD(&prange->svm_bo_list);
        INIT_LIST_HEAD(&prange->deferred_list);
        INIT_LIST_HEAD(&prange->child_list);
                                goto out;
                        }
 
-                       list_add(&old->remove_list, remove_list);
+                       list_add(&old->update_list, remove_list);
                        list_add(&prange->list, insert_list);
                        list_add(&prange->update_list, update_list);
 
                svm_range_apply_attrs(p, prange, nattr, attrs);
                /* TODO: unmap ranges from GPU that lost access */
        }
-       list_for_each_entry_safe(prange, next, &remove_list,
-                               remove_list) {
+       list_for_each_entry_safe(prange, next, &remove_list, update_list) {
                pr_debug("unlink old 0x%p prange 0x%p [0x%lx 0x%lx]\n",
                         prange->svms, prange, prange->start,
                         prange->last);
 
  *              aligned, page size is (last - start + 1)
  * @list:       link list node, used to scan all ranges of svms
  * @update_list:link list node used to add to update_list
- * @remove_list:link list node used to add to remove list
  * @mapping:    bo_va mapping structure to create and update GPU page table
  * @npages:     number of pages
  * @dma_addr:   dma mapping address on each GPU for system memory physical page
        struct interval_tree_node       it_node;
        struct list_head                list;
        struct list_head                update_list;
-       struct list_head                remove_list;
        uint64_t                        npages;
        dma_addr_t                      *dma_addr[MAX_GPU_INSTANCE];
        struct ttm_resource             *ttm_res;