]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
amdgpu: Hack around the removal of page->mapping
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 17 Mar 2025 19:45:43 +0000 (15:45 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 17 Mar 2025 19:55:41 +0000 (15:55 -0400)
This is almost certainly the wrong thing to do, but it gets everything
compiling for the moment.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c

index b2033f8352f50e725297079acd20c9b338abdce7..a7e52cb0094d356a4444287feb1965e76b9c1404 100644 (file)
@@ -136,7 +136,7 @@ int amdgpu_gart_table_ram_alloc(struct amdgpu_device *adev)
 
        /* assign pages to this device */
        for (x = 0; x < (1UL << order); x++)
-               p[x].mapping = adev->mman.bdev.dev_mapping;
+               page_folio(&p[x])->mapping = adev->mman.bdev.dev_mapping;
 
        /* If the hardware does not support UTCL2 snooping of the CPU caches
         * then set_memory_wc() could be used as a workaround to mark the pages
@@ -244,7 +244,7 @@ void amdgpu_gart_table_ram_free(struct amdgpu_device *adev)
        kfree(sg);
        p = virt_to_page(adev->gart.ptr);
        for (x = 0; x < (1UL << order); x++)
-               p[x].mapping = NULL;
+               page_folio(&p[x])->mapping = NULL;
        __free_pages(p, order);
 
        adev->gart.ptr = NULL;
index 53b71e9d807608d4ffb2fa2f4f6d1b1b4f9acea7..09aea51d693304679728cf38abae3b4d1d081295 100644 (file)
@@ -1166,7 +1166,7 @@ static int amdgpu_ttm_tt_populate(struct ttm_device *bdev,
                return ret;
 
        for (i = 0; i < ttm->num_pages; ++i)
-               ttm->pages[i]->mapping = bdev->dev_mapping;
+               page_folio(ttm->pages[i])->mapping = bdev->dev_mapping;
 
        return 0;
 }
@@ -1198,7 +1198,7 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_device *bdev,
                return;
 
        for (i = 0; i < ttm->num_pages; ++i)
-               ttm->pages[i]->mapping = NULL;
+               page_folio(ttm->pages[i])->mapping = NULL;
 
        adev = amdgpu_ttm_adev(bdev);
 
@@ -2552,7 +2552,7 @@ static ssize_t amdgpu_iomem_read(struct file *f, char __user *buf,
                        return -EPERM;
 
                p = pfn_to_page(pfn);
-               if (p->mapping != adev->mman.bdev.dev_mapping)
+               if (page_folio(p)->mapping != adev->mman.bdev.dev_mapping)
                        return -EPERM;
 
                ptr = kmap_local_page(p);
@@ -2603,7 +2603,7 @@ static ssize_t amdgpu_iomem_write(struct file *f, const char __user *buf,
                        return -EPERM;
 
                p = pfn_to_page(pfn);
-               if (p->mapping != adev->mman.bdev.dev_mapping)
+               if (page_folio(p)->mapping != adev->mman.bdev.dev_mapping)
                        return -EPERM;
 
                ptr = kmap_local_page(p);