]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Tue, 30 Aug 2011 22:45:03 +0000 (15:45 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 30 Aug 2011 22:45:03 +0000 (15:45 -0700)
queue-3.0/series
queue-3.0/sparc64-only-panther-cheetah-chips-have-popc.patch [new file with mode: 0644]

index 1c0a3610e8ddaccb90b237937f34f148385b940b..0021890e3622ffab65bf0360ee4183c874c6bc5b 100644 (file)
@@ -44,3 +44,4 @@ sparc64-set-have_c_recordmcount.patch
 sparc-fix-array-bounds-error-setting-up-pcic-nmi-trap.patch
 sparc32-sun4d-change-ipi-irq-level-to-prevent-collision.patch
 regulator-tps65910-add-missing-breaks-in-switch-case.patch
+sparc64-only-panther-cheetah-chips-have-popc.patch
diff --git a/queue-3.0/sparc64-only-panther-cheetah-chips-have-popc.patch b/queue-3.0/sparc64-only-panther-cheetah-chips-have-popc.patch
new file mode 100644 (file)
index 0000000..06f21b2
--- /dev/null
@@ -0,0 +1,35 @@
+From 1a8e0da5937a6c87807083baa318cf8f98dac9aa Mon Sep 17 00:00:00 2001
+From: "David S. Miller" <davem@davemloft.net>
+Date: Mon, 29 Aug 2011 21:14:29 -0700
+Subject: sparc64: Only Panther cheetah+ chips have POPC.
+
+From: "David S. Miller" <davem@davemloft.net>
+
+commit 1a8e0da5937a6c87807083baa318cf8f98dac9aa upstream.
+
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/sparc/kernel/setup_64.c |   10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+--- a/arch/sparc/kernel/setup_64.c
++++ b/arch/sparc/kernel/setup_64.c
+@@ -440,8 +440,14 @@ static void __init init_sparc64_elf_hwca
+                       cap |= AV_SPARC_VIS;
+               if (tlb_type == cheetah || tlb_type == cheetah_plus)
+                       cap |= AV_SPARC_VIS | AV_SPARC_VIS2;
+-              if (tlb_type == cheetah_plus)
+-                      cap |= AV_SPARC_POPC;
++              if (tlb_type == cheetah_plus) {
++                      unsigned long impl, ver;
++
++                      __asm__ __volatile__("rdpr %%ver, %0" : "=r" (ver));
++                      impl = ((ver >> 32) & 0xffff);
++                      if (impl == PANTHER_IMPL)
++                              cap |= AV_SPARC_POPC;
++              }
+               if (tlb_type == hypervisor) {
+                       if (sun4v_chip_type == SUN4V_CHIP_NIAGARA1)
+                               cap |= AV_SPARC_ASI_BLK_INIT;