drm/amdkfd: Insert missing TLB flush on GFX10 and later
authorHarish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Mon, 11 Sep 2023 18:49:06 +0000 (14:49 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 12 Sep 2023 21:45:40 +0000 (17:45 -0400)
Heavy-weight TLB flush is required after unmap on all GPUs for
correctness and security.

Signed-off-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdkfd/kfd_priv.h

index 3d9ce44d88da572faa590a3277063ecd0854d9bb..fa24e1852493dc8fb77b35efdb0e5768a34b172e 100644 (file)
@@ -1466,8 +1466,7 @@ void kfd_flush_tlb(struct kfd_process_device *pdd, enum TLB_FLUSH_TYPE type);
 
 static inline bool kfd_flush_tlb_after_unmap(struct kfd_dev *dev)
 {
-       return KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 3) ||
-              KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 2) ||
+       return KFD_GC_VERSION(dev) > IP_VERSION(9, 4, 2) ||
               (KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 1) && dev->sdma_fw_version >= 18) ||
               KFD_GC_VERSION(dev) == IP_VERSION(9, 4, 0);
 }