diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-03-13 20:55:15 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-03-13 20:55:15 +0000 |
commit | 1471f525455788c20b130690e0f104df451aeb43 (patch) | |
tree | 3778beba56558beb9a9548ea5b467e9c44ea966f /arch/sparc | |
parent | e80d2c5456d30ebba5b0eb8a9d33e17d815d4d83 (diff) |
Merge with Linux 2.3.51.
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/defconfig | 5 | ||||
-rw-r--r-- | arch/sparc/kernel/sparc_ksyms.c | 8 | ||||
-rw-r--r-- | arch/sparc/kernel/sys_sunos.c | 2 | ||||
-rw-r--r-- | arch/sparc/lib/Makefile | 6 | ||||
-rw-r--r-- | arch/sparc/lib/irqlock.S | 122 | ||||
-rw-r--r-- | arch/sparc/mm/init.c | 8 |
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; |