patch-2.3.16 linux/arch/sparc64/kernel/starfire.c

Next file: linux/arch/sparc64/kernel/sys_sparc32.c
Previous file: linux/arch/sparc64/kernel/smp.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.15/linux/arch/sparc64/kernel/starfire.c linux/arch/sparc64/kernel/starfire.c
@@ -1,4 +1,4 @@
-/* $Id: starfire.c,v 1.2 1998/12/09 18:53:11 davem Exp $
+/* $Id: starfire.c,v 1.3 1999/08/30 10:01:13 davem Exp $
  * starfire.c: Starfire/E10000 support.
  *
  * Copyright (C) 1998 David S. Miller (davem@dm.cobaltmicro.com)
@@ -43,7 +43,7 @@
 
 int starfire_hard_smp_processor_id(void)
 {
-	return *((unsigned int *) __va(0x1fff40000d0));
+	return *((volatile unsigned int *) __va(0x1fff40000d0));
 }
 
 /* Each Starfire board has 32 registers which perform translation
@@ -52,8 +52,8 @@
  * bits than in all previous Sun5 systems.
  */
 struct starfire_irqinfo {
-	unsigned int *imap_slots[32];
-	unsigned int *tregs[32];
+	volatile unsigned int *imap_slots[32];
+	volatile unsigned int *tregs[32];
 	struct starfire_irqinfo *next;
 	int upaid, hwmid;
 };
@@ -80,7 +80,7 @@
 	treg_base += 0x200UL;
 	for(i = 0; i < 32; i++) {
 		p->imap_slots[i] = NULL;
-		p->tregs[i] = __va(treg_base + (i * 0x10));
+		p->tregs[i] = (volatile unsigned int *)__va(treg_base + (i * 0x10));
 	}
 	p->upaid = upaid;
 	p->next = sflist;
@@ -89,7 +89,7 @@
 	return (void *) p;
 }
 
-unsigned int starfire_translate(unsigned int *imap,
+unsigned int starfire_translate(volatile unsigned int *imap,
 				unsigned int upaid)
 {
 	struct starfire_irqinfo *p;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)