summaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-03-13 20:55:15 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-03-13 20:55:15 +0000
commit1471f525455788c20b130690e0f104df451aeb43 (patch)
tree3778beba56558beb9a9548ea5b467e9c44ea966f /arch/sparc
parente80d2c5456d30ebba5b0eb8a9d33e17d815d4d83 (diff)
Merge with Linux 2.3.51.
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/defconfig5
-rw-r--r--arch/sparc/kernel/sparc_ksyms.c8
-rw-r--r--arch/sparc/kernel/sys_sunos.c2
-rw-r--r--arch/sparc/lib/Makefile6
-rw-r--r--arch/sparc/lib/irqlock.S122
-rw-r--r--arch/sparc/mm/init.c8
6 files changed, 11 insertions, 140 deletions
diff --git a/arch/sparc/defconfig b/arch/sparc/defconfig
index 580d004d7..e719d9214 100644
--- a/arch/sparc/defconfig
+++ b/arch/sparc/defconfig
@@ -83,6 +83,10 @@ CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_SUNOS_EMUL=y
+
+#
+# Parallel port support
+#
# CONFIG_PARPORT is not set
# CONFIG_PRINTER is not set
@@ -146,7 +150,6 @@ CONFIG_ATALK=m
CONFIG_DECNET=m
CONFIG_DECNET_SIOCGIFCONF=y
# CONFIG_DECNET_ROUTER is not set
-CONFIG_DECNET_RAW=y
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_BRIDGE is not set
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c
index d4585d9d5..e0bb41045 100644
--- a/arch/sparc/kernel/sparc_ksyms.c
+++ b/arch/sparc/kernel/sparc_ksyms.c
@@ -1,4 +1,4 @@
-/* $Id: sparc_ksyms.c,v 1.93 2000/02/26 11:02:45 anton Exp $
+/* $Id: sparc_ksyms.c,v 1.94 2000/02/28 04:00:53 anton Exp $
* arch/sparc/kernel/ksyms.c: Sparc specific ksyms support.
*
* Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
@@ -107,16 +107,10 @@ EXPORT_SYMBOL_PRIVATE(_rw_read_exit);
EXPORT_SYMBOL_PRIVATE(_rw_write_enter);
#endif
#ifdef __SMP__
-#ifdef DEBUG_IRQLOCK
EXPORT_SYMBOL(__global_save_flags);
EXPORT_SYMBOL(__global_restore_flags);
EXPORT_SYMBOL(__global_sti);
EXPORT_SYMBOL(__global_cli);
-#else
-EXPORT_SYMBOL_PRIVATE(_global_restore_flags);
-EXPORT_SYMBOL_PRIVATE(_global_sti);
-EXPORT_SYMBOL_PRIVATE(_global_cli);
-#endif
#endif
/* rw semaphores */
diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c
index 54c701768..1d6f208f6 100644
--- a/arch/sparc/kernel/sys_sunos.c
+++ b/arch/sparc/kernel/sys_sunos.c
@@ -1,4 +1,4 @@
-/* $Id: sys_sunos.c,v 1.113 2000/02/16 07:31:29 davem Exp $
+/* $Id: sys_sunos.c,v 1.114 2000/03/07 22:27:27 davem Exp $
* sys_sunos.c: SunOS specific syscall compatibility support.
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index 1a8c404e2..d269e148b 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.31 1999/12/28 11:50:39 jj Exp $
+# $Id: Makefile,v 1.32 2000/02/28 04:00:48 anton Exp $
# Makefile for Sparc library files..
#
@@ -8,10 +8,6 @@ OBJS = mul.o rem.o sdiv.o udiv.o umul.o urem.o ashrdi3.o memcpy.o memset.o \
copy_user.o locks.o atomic.o bitops.o debuglocks.o lshrdi3.o \
ashldi3.o rwsem.o
-ifdef CONFIG_SMP
-OBJS += irqlock.o
-endif
-
lib.a: $(OBJS)
$(AR) rcs lib.a $(OBJS)
sync
diff --git a/arch/sparc/lib/irqlock.S b/arch/sparc/lib/irqlock.S
deleted file mode 100644
index 4c41e9825..000000000
--- a/arch/sparc/lib/irqlock.S
+++ /dev/null
@@ -1,122 +0,0 @@
-/* $Id: irqlock.S,v 1.5 1999/04/20 13:22:37 anton Exp $
- * irqlock.S: High performance IRQ global locking and interrupt entry.
- *
- * Copyright (C) 1997 David S. Miller (davem@caip.rutgers.edu)
- */
-
-#include <asm/psr.h>
-#include <asm/smp.h>
-
- .text
- .align 4
-
- /* Weird calling conventions... %g7=flags, %g4=%prev_o7
- * Very clever for the __global_sti case, the inline which
- * gets us here clears %g7 and it just works.
- */
- .globl ___global_restore_flags, ___global_sti, ___global_cli
-___global_restore_flags:
- bne,a ___global_cli
- rd %tbr, %g7
- rd %tbr, %g2
-
-___global_sti:
- sethi %hi(global_irq_holder), %g1
- sethi %hi(global_irq_lock), %g3
- srl %g2, 12, %g2
- ldub [%g1 + %lo(global_irq_holder)], %g5
- and %g2, 3, %g2
- cmp %g5, %g2
- bne 1f
- mov NO_PROC_ID, %g5
- stb %g5, [%g1 + %lo(global_irq_holder)]
- stb %g0, [%g3 + %lo(global_irq_lock)]
-1:
- rd %psr, %g3
- andcc %g7, 2, %g0
- bne,a 1f
- or %g3, PSR_PIL, %g3
- andn %g3, PSR_PIL, %g3
-1:
- wr %g3, 0x0, %psr
- nop
-__global_cli_out: ! All togther now... "fuuunnnnn"
- retl
- mov %g4, %o7
-
-__spin_on_global_irq_lock:
- orcc %g2, 0x0, %g0
- bne,a __spin_on_global_irq_lock
- ldub [%g1], %g2
- b,a 1f
-
- /* This is a royal pain in the ass to make fast... 8-( */
-___global_cli:
- sethi %hi(global_irq_lock), %g5
- srl %g7, 12, %g7
- sethi %hi(global_irq_holder), %g3
- and %g7, 3, %g7
- ldub [%g3 + %lo(global_irq_holder)], %g1
- rd %psr, %g2
- cmp %g1, %g7
- or %g2, PSR_PIL, %g2
- be __global_cli_out
- wr %g2, 0x0, %psr ! XXX some sparcs may choke on this...
- sethi %hi(local_irq_count), %g3
- or %g3, %lo(local_irq_count), %g3
- or %g5, %lo(global_irq_lock), %g1
-1:
- ldstub [%g1], %g2
- orcc %g2, 0x0, %g0
- bne,a __spin_on_global_irq_lock
- ldub [%g1], %g2
-__wait_on_irq:
- sll %g7, 2, %g7
- ld [%g3 + %g7], %g2
- sethi %hi(global_irq_count), %g1
- or %g1, %lo(global_irq_count), %g1
- srl %g7, 2, %g7
- ld [%g1], %g5
- sra %g5, 8, %g5
-__wait_on_irq_loop:
- cmp %g5, %g2
- sethi %hi(global_irq_holder), %g3
- be,a __global_cli_out ! Mamamia, Mamamia, this is the fast path
- stb %g7, [%g3 + %lo(global_irq_holder)]
-1:
- ldstub [%g1 + 3], %g3
- orcc %g3, 0x0, %g0
- bne 1b
- ld [%g1], %g3
- sra %g3, 8, %g3
- sub %g3, %g2, %g3
- sll %g3, 8, %g3
- st %g3, [%g1]
- sethi %hi(global_irq_lock), %g3
- stb %g0, [%g3 + %lo(global_irq_lock)]
-0:
- ld [%g1], %g5
-9:
- ldub [%g3 + %lo(global_irq_lock)], %g3
- sra %g5, 8, %g5
- orcc %g3, %g5, %g0
- bne 0b
- sethi %hi(global_irq_lock), %g3
- ldstub [%g3 + %lo(global_irq_lock)], %g5
- orcc %g5, 0x0, %g0
- bne,a 9b
- ld [%g1], %g5
-1:
- ldstub [%g1 + 3], %g3
- orcc %g3, 0x0, %g0
- bne 1b
- ld [%g1], %g3
- sra %g3, 8, %g3
- add %g3, %g2, %g5
- sll %g5, 8, %g3
- b __wait_on_irq_loop
- st %g3, [%g1]
-
-#if 0 /* XXX I'm not delirious enough to debug this yet. */
- add %o7, (8 + (__wait_on_irq_loop - . - 4)), %o7 ! AIEEEEE
-#endif
diff --git a/arch/sparc/mm/init.c b/arch/sparc/mm/init.c
index 3ac49a10b..d92fbbb0b 100644
--- a/arch/sparc/mm/init.c
+++ b/arch/sparc/mm/init.c
@@ -1,4 +1,4 @@
-/* $Id: init.c,v 1.81 2000/02/26 11:59:31 anton Exp $
+/* $Id: init.c,v 1.83 2000/03/07 23:12:35 anton Exp $
* linux/arch/sparc/mm/init.c
*
* Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
@@ -121,8 +121,8 @@ unsigned long __init bootmem_init(void)
int i;
/* Limit maximum memory until we implement highmem for sparc */
- if (cmdline_memory_size > 0x9000000)
- cmdline_memory_size = 0x9000000;
+ if (!cmdline_memory_size || cmdline_memory_size > 0x0d000000)
+ cmdline_memory_size = 0x0d000000;
/* XXX It is a bit ambiguous here, whether we should
* XXX treat the user specified mem=xxx as total wanted
@@ -138,7 +138,7 @@ unsigned long __init bootmem_init(void)
sp_banks[i].num_bytes;
if (cmdline_memory_size) {
if (end_of_phys_memory > cmdline_memory_size) {
- if (cmdline_memory_size > sp_banks[i].base_addr) {
+ if (cmdline_memory_size < sp_banks[i].base_addr) {
end_of_phys_memory =
sp_banks[i-1].base_addr +
sp_banks[i-1].num_bytes;