+++ /dev/null
-From ea2c3c08554601b051d91403a241266e1cf490a5 Mon Sep 17 00:00:00 2001
-From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
-Date: Fri, 16 Jun 2023 15:14:07 +0200
-Subject: drm/amdgpu: fix clearing mappings for BOs that are always valid in VM
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
-
-commit ea2c3c08554601b051d91403a241266e1cf490a5 upstream.
-
-Per VM BOs must be marked as moved or otherwise their ranges are not
-updated on use which might be necessary when the replace operation
-splits mappings.
-
-This fixes random GPU hangs when replacing sparse mappings from the
-userspace, while OP_MAP/OP_UNMAP works fine because always valid BOs
-are correctly handled there.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
-Reviewed-by: Christian König <christian.koenig@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -2312,18 +2312,30 @@ int amdgpu_vm_bo_clear_mappings(struct a
-
- /* Insert partial mapping before the range */
- if (!list_empty(&before->list)) {
-+ struct amdgpu_bo *bo = before->bo_va->base.bo;
-+
- amdgpu_vm_it_insert(before, &vm->va);
- if (before->flags & AMDGPU_PTE_PRT)
- amdgpu_vm_prt_get(adev);
-+
-+ if (bo && bo->tbo.base.resv == vm->root.bo->tbo.base.resv &&
-+ !before->bo_va->base.moved)
-+ amdgpu_vm_bo_moved(&before->bo_va->base);
- } else {
- kfree(before);
- }
-
- /* Insert partial mapping after the range */
- if (!list_empty(&after->list)) {
-+ struct amdgpu_bo *bo = after->bo_va->base.bo;
-+
- amdgpu_vm_it_insert(after, &vm->va);
- if (after->flags & AMDGPU_PTE_PRT)
- amdgpu_vm_prt_get(adev);
-+
-+ if (bo && bo->tbo.base.resv == vm->root.bo->tbo.base.resv &&
-+ !after->bo_va->base.moved)
-+ amdgpu_vm_bo_moved(&after->bo_va->base);
- } else {
- kfree(after);
- }
misc-pci_endpoint_test-re-init-completion-for-every-test.patch
md-raid0-add-discard-support-for-the-original-layout.patch
fs-dlm-return-positive-pid-value-for-f_getlk.patch
-drm-amdgpu-fix-clearing-mappings-for-bos-that-are-always-valid-in-vm.patch
serial-atmel-don-t-enable-irqs-prematurely.patch
+++ /dev/null
-From ea2c3c08554601b051d91403a241266e1cf490a5 Mon Sep 17 00:00:00 2001
-From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
-Date: Fri, 16 Jun 2023 15:14:07 +0200
-Subject: drm/amdgpu: fix clearing mappings for BOs that are always valid in VM
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Samuel Pitoiset <samuel.pitoiset@gmail.com>
-
-commit ea2c3c08554601b051d91403a241266e1cf490a5 upstream.
-
-Per VM BOs must be marked as moved or otherwise their ranges are not
-updated on use which might be necessary when the replace operation
-splits mappings.
-
-This fixes random GPU hangs when replacing sparse mappings from the
-userspace, while OP_MAP/OP_UNMAP works fine because always valid BOs
-are correctly handled there.
-
-Cc: stable@vger.kernel.org
-Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
-Reviewed-by: Christian König <christian.koenig@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
-@@ -2315,18 +2315,30 @@ int amdgpu_vm_bo_clear_mappings(struct a
-
- /* Insert partial mapping before the range */
- if (!list_empty(&before->list)) {
-+ struct amdgpu_bo *bo = before->bo_va->base.bo;
-+
- amdgpu_vm_it_insert(before, &vm->va);
- if (before->flags & AMDGPU_PTE_PRT)
- amdgpu_vm_prt_get(adev);
-+
-+ if (bo && bo->tbo.base.resv == vm->root.bo->tbo.base.resv &&
-+ !before->bo_va->base.moved)
-+ amdgpu_vm_bo_moved(&before->bo_va->base);
- } else {
- kfree(before);
- }
-
- /* Insert partial mapping after the range */
- if (!list_empty(&after->list)) {
-+ struct amdgpu_bo *bo = after->bo_va->base.bo;
-+
- amdgpu_vm_it_insert(after, &vm->va);
- if (after->flags & AMDGPU_PTE_PRT)
- amdgpu_vm_prt_get(adev);
-+
-+ if (bo && bo->tbo.base.resv == vm->root.bo->tbo.base.resv &&
-+ !after->bo_va->base.moved)
-+ amdgpu_vm_bo_moved(&after->bo_va->base);
- } else {
- kfree(after);
- }
misc-pci_endpoint_test-re-init-completion-for-every-test.patch
md-raid0-add-discard-support-for-the-original-layout.patch
fs-dlm-return-positive-pid-value-for-f_getlk.patch
-drm-amdgpu-fix-clearing-mappings-for-bos-that-are-always-valid-in-vm.patch
drm-amd-display-add-monitor-specific-edid-quirk.patch
serial-atmel-don-t-enable-irqs-prematurely.patch