patch-2.1.34 linux/arch/sparc/kernel/setup.c
Next file: linux/arch/sparc/kernel/smp.c
Previous file: linux/arch/sparc/kernel/rtrap.S
Back to the patch index
Back to the overall index
- Lines: 60
- Date:
Fri Apr 11 10:47:35 1997
- Orig file:
v2.1.33/linux/arch/sparc/kernel/setup.c
- Orig date:
Thu Mar 27 14:39:59 1997
diff -u --recursive --new-file v2.1.33/linux/arch/sparc/kernel/setup.c linux/arch/sparc/kernel/setup.c
@@ -1,4 +1,4 @@
-/* $Id: setup.c,v 1.82 1997/03/08 08:27:04 ecd Exp $
+/* $Id: setup.c,v 1.83 1997/04/01 02:21:49 davem Exp $
* linux/arch/sparc/kernel/setup.c
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
@@ -24,6 +24,7 @@
#include <linux/string.h>
#include <linux/blk.h>
#include <linux/init.h>
+#include <linux/interrupt.h>
#include <asm/segment.h>
#include <asm/system.h>
@@ -38,6 +39,9 @@
#include <asm/kdebug.h>
#include <asm/mbus.h>
#include <asm/idprom.h>
+#include <asm/spinlock.h>
+#include <asm/softirq.h>
+#include <asm/hardirq.h>
struct screen_info screen_info = {
0, 0, /* orig-x, orig-y */
@@ -75,8 +79,13 @@
void prom_sync_me(void)
{
unsigned long prom_tbr, flags;
+ int cpu = smp_processor_id();
- save_and_cli(flags);
+#ifdef __SMP__
+ global_irq_holder = NO_PROC_ID;
+ global_irq_lock = global_bh_lock = 0;
+#endif
+ __save_and_cli(flags);
__asm__ __volatile__("rd %%tbr, %0\n\t" : "=r" (prom_tbr));
__asm__ __volatile__("wr %0, 0x0, %%tbr\n\t"
"nop\n\t"
@@ -89,9 +98,9 @@
prom_printf("PROM SYNC COMMAND...\n");
show_free_areas();
if(current->pid != 0) {
- sti();
+ __sti();
sys_sync();
- cli();
+ __cli();
}
prom_printf("Returning to prom\n");
@@ -99,7 +108,7 @@
"nop\n\t"
"nop\n\t"
"nop\n\t" : : "r" (prom_tbr));
- restore_flags(flags);
+ __restore_flags(flags);
return;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov