]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Jul 2014 19:05:51 +0000 (12:05 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Jul 2014 19:05:51 +0000 (12:05 -0700)
added patches:
drm-radeon-stop-poisoning-the-gart-tlb.patch

queue-3.4/drm-radeon-stop-poisoning-the-gart-tlb.patch [new file with mode: 0644]
queue-3.4/series

diff --git a/queue-3.4/drm-radeon-stop-poisoning-the-gart-tlb.patch b/queue-3.4/drm-radeon-stop-poisoning-the-gart-tlb.patch
new file mode 100644 (file)
index 0000000..974dfa1
--- /dev/null
@@ -0,0 +1,43 @@
+From 0986c1a55ca64b44ee126a2f719a6e9f28cbe0ed Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
+Date: Wed, 4 Jun 2014 15:29:56 +0200
+Subject: drm/radeon: stop poisoning the GART TLB
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Christian König <christian.koenig@amd.com>
+
+commit 0986c1a55ca64b44ee126a2f719a6e9f28cbe0ed upstream.
+
+When we set the valid bit on invalid GART entries they are
+loaded into the TLB when an adjacent entry is loaded. This
+poisons the TLB with invalid entries which are sometimes
+not correctly removed on TLB flush.
+
+For stable inclusion the patch probably needs to be modified a bit.
+
+Signed-off-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/radeon/rs600.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/rs600.c
++++ b/drivers/gpu/drm/radeon/rs600.c
+@@ -539,8 +539,10 @@ int rs600_gart_set_page(struct radeon_de
+               return -EINVAL;
+       }
+       addr = addr & 0xFFFFFFFFFFFFF000ULL;
+-      addr |= R600_PTE_VALID | R600_PTE_SYSTEM | R600_PTE_SNOOPED;
+-      addr |= R600_PTE_READABLE | R600_PTE_WRITEABLE;
++      if (addr != rdev->dummy_page.addr)
++              addr |= R600_PTE_VALID | R600_PTE_READABLE |
++                      R600_PTE_WRITEABLE;
++      addr |= R600_PTE_SYSTEM | R600_PTE_SNOOPED;
+       writeq(addr, ptr + (i * 8));
+       return 0;
+ }
index 8e0122721c41ec1a3cff77888d3e38110de438c6..67eea97966f89076ad1c17e7bc8358b91541296b 100644 (file)
@@ -6,3 +6,4 @@ hwmon-amc6821-fix-permissions-for-temp2_input.patch
 hwmon-adm1029-ensure-the-fan_div-cache-is-updated-in-set_fan_div.patch
 powerpc-perf-never-program-book3s-pmcs-with-values-0x80000000.patch
 ext4-clarify-error-count-warning-messages.patch
+drm-radeon-stop-poisoning-the-gart-tlb.patch