]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/ttm: stop setting page->index for the ttm_tt
authorMatthew Auld <matthew.auld@intel.com>
Mon, 27 Sep 2021 11:41:03 +0000 (12:41 +0100)
committerChristian König <christian.koenig@amd.com>
Wed, 29 Sep 2021 11:54:36 +0000 (13:54 +0200)
In commit:

commit 96161f7a8646dd42a4b6373d39bcd4e7389df529
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Fri Jan 3 11:47:23 2014 +0100

    drm/ttm: Correctly set page mapping and -index members

we started setting the page->mapping and page->index to point to the
virtual address space, if the pages were faulted with TTM. Apparently
this was needed for core-mm to able to reverse lookup the virtual
address given the struct page, and potentially unmap it from the page
tables. However as pointed out by Thomas, since we are now using
PFN_MAP, instead of say PFN_MIXED, this should no longer be the case.

There was also apparently some usecase in vmwgfx which needed this for
dirty tracking, but that also doesn't appear to be the case anymore, as
pointed out by Thomas.

We still need keep the page->mapping for now, since that is still needed
for different reasons, but we try to address that in the next patch.

Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: Christian König <christian.koenig@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210927114114.152310-2-matthew.auld@intel.com
Signed-off-by: Christian König <christian.koenig@amd.com>
drivers/gpu/drm/ttm/ttm_bo_vm.c
drivers/gpu/drm/ttm/ttm_tt.c

index 5b9b7fd01a6926731a9fb4271db18f9e167d0b33..9a2119fe4bddd6c3630ad1dba573939405aa25ae 100644 (file)
@@ -346,8 +346,6 @@ vm_fault_t ttm_bo_vm_fault_reserved(struct vm_fault *vmf,
                        } else if (unlikely(!page)) {
                                break;
                        }
-                       page->index = drm_vma_node_start(&bo->base.vma_node) +
-                               page_offset;
                        pfn = page_to_pfn(page);
                }
 
index dae52433beeb6e0fac9be996e86224c3fa40a687..1cc04c224988940b22cb622e729ba6d7b7965f10 100644 (file)
@@ -367,10 +367,8 @@ static void ttm_tt_clear_mapping(struct ttm_tt *ttm)
        if (ttm->page_flags & TTM_PAGE_FLAG_SG)
                return;
 
-       for (i = 0; i < ttm->num_pages; ++i) {
+       for (i = 0; i < ttm->num_pages; ++i)
                (*page)->mapping = NULL;
-               (*page++)->index = 0;
-       }
 }
 
 void ttm_tt_unpopulate(struct ttm_device *bdev, struct ttm_tt *ttm)