patch-2.1.9 linux/arch/sparc/prom/segment.c

Next file: linux/arch/sparc/prom/tree.c
Previous file: linux/arch/sparc/prom/ranges.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.8/linux/arch/sparc/prom/segment.c linux/arch/sparc/prom/segment.c
@@ -1,4 +1,4 @@
-/* $Id: segment.c,v 1.2 1995/11/25 01:00:14 davem Exp $
+/* $Id: segment.c,v 1.3 1996/09/19 20:27:28 davem Exp $
  * segment.c:  Prom routine to map segments in other contexts before
  *             a standalone is completely mapped.  This is for sun4 and
  *             sun4c architectures only.
@@ -6,6 +6,9 @@
  * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
  */
 
+#include <linux/types.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
 #include <asm/openprom.h>
 #include <asm/oplib.h>
 
@@ -15,6 +18,12 @@
 void
 prom_putsegment(int ctx, unsigned long vaddr, int segment)
 {
+	unsigned long flags;
+	save_flags(flags); cli();
 	(*(romvec->pv_setctxt))(ctx, (char *) vaddr, segment);
+	__asm__ __volatile__("ld [%0], %%g6\n\t" : :
+			     "r" (&current_set[smp_processor_id()]) :
+			     "memory");
+	restore_flags(flags);
 	return;
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov