]> Git Repo - J-linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c
Merge tag 'ext4_for_linus-6.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel...
[J-linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_gart.c
index c623e23049d1d4bde50991fcddc8b542df0099b7..256b95232de5419d91cfb60d6db1cc3f80795a8b 100644 (file)
@@ -34,6 +34,7 @@
 #include <asm/set_memory.h>
 #endif
 #include "amdgpu.h"
+#include "amdgpu_reset.h"
 #include <drm/drm_drv.h>
 #include <drm/ttm/ttm_tt.h>
 
@@ -325,10 +326,7 @@ void amdgpu_gart_unbind(struct amdgpu_device *adev, uint64_t offset,
                        page_base += AMDGPU_GPU_PAGE_SIZE;
                }
        }
-       mb();
-       amdgpu_device_flush_hdp(adev, NULL);
-       for_each_set_bit(i, adev->vmhubs_mask, AMDGPU_MAX_VMHUBS)
-               amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
+       amdgpu_gart_invalidate_tlb(adev);
 
        drm_dev_exit(idx);
 }
@@ -408,7 +406,10 @@ void amdgpu_gart_invalidate_tlb(struct amdgpu_device *adev)
                return;
 
        mb();
-       amdgpu_device_flush_hdp(adev, NULL);
+       if (down_read_trylock(&adev->reset_domain->sem)) {
+               amdgpu_device_flush_hdp(adev, NULL);
+               up_read(&adev->reset_domain->sem);
+       }
        for_each_set_bit(i, adev->vmhubs_mask, AMDGPU_MAX_VMHUBS)
                amdgpu_gmc_flush_gpu_tlb(adev, 0, i, 0);
 }
This page took 0.02846 seconds and 4 git commands to generate.