]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - drivers/gpu/drm/ttm/ttm_device.c
Merge drm-misc-next-fixes-2024-01-19 into drm-misc-fixes
[thirdparty/linux.git] / drivers / gpu / drm / ttm / ttm_device.c
index 4130945052ed2a523d50e1d39d028ca3741c6605..76027960054f1140e768ae21b30e5a3015437d02 100644 (file)
@@ -95,11 +95,17 @@ static int ttm_global_init(void)
        ttm_pool_mgr_init(num_pages);
        ttm_tt_mgr_init(num_pages, num_dma32);
 
-       glob->dummy_read_page = alloc_page(__GFP_ZERO | GFP_DMA32);
+       glob->dummy_read_page = alloc_page(__GFP_ZERO | GFP_DMA32 |
+                                          __GFP_NOWARN);
 
+       /* Retry without GFP_DMA32 for platforms DMA32 is not available */
        if (unlikely(glob->dummy_read_page == NULL)) {
-               ret = -ENOMEM;
-               goto out;
+               glob->dummy_read_page = alloc_page(__GFP_ZERO);
+               if (unlikely(glob->dummy_read_page == NULL)) {
+                       ret = -ENOMEM;
+                       goto out;
+               }
+               pr_warn("Using GFP_DMA32 fallback for dummy_read_page\n");
        }
 
        INIT_LIST_HEAD(&glob->device_list);