patch-2.2.15 linux/include/asm-sparc64/system.h
Next file: linux/include/linux/apm_bios.h
Previous file: linux/include/asm-sparc64/pgtable.h
Back to the patch index
Back to the overall index
- Lines: 24
- Date:
Fri Apr 21 12:46:52 2000
- Orig file:
v2.2.14/include/asm-sparc64/system.h
- Orig date:
Sat Aug 14 02:26:21 1999
diff -u --new-file --recursive --exclude-from ../../exclude v2.2.14/include/asm-sparc64/system.h linux/include/asm-sparc64/system.h
@@ -1,4 +1,4 @@
-/* $Id: system.h,v 1.50 1999/05/08 03:03:22 davem Exp $ */
+/* $Id: system.h,v 1.50.2.1 2000/03/06 22:30:28 davem Exp $ */
#ifndef __SPARC64_SYSTEM_H
#define __SPARC64_SYSTEM_H
@@ -106,7 +106,16 @@
#define read_pcr(__p) __asm__ __volatile__("rd %%pcr, %0" : "=r" (__p))
#define write_pcr(__p) __asm__ __volatile__("wr %0, 0x0, %%pcr" : : "r" (__p));
#define read_pic(__p) __asm__ __volatile__("rd %%pic, %0" : "=r" (__p))
-#define reset_pic() __asm__ __volatile__("wr %g0, 0x0, %pic");
+
+/* Blackbird errata workaround. See commentary in
+ * arch/sparc64/kernel/smp.c:smp_percpu_timer_interrupt()
+ * for more information.
+ */
+#define reset_pic() \
+ __asm__ __volatile__("ba,pt %xcc, 99f\n\t" \
+ ".align 64\n" \
+ "99:wr %g0, 0x0, %pic\n\t" \
+ "rd %pic, %g0")
#ifndef __ASSEMBLY__
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)