diff options
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/baget/irq.c | 6 | ||||
-rw-r--r-- | arch/mips/config.in | 8 | ||||
-rw-r--r-- | arch/mips/dec/irq.c | 6 | ||||
-rw-r--r-- | arch/mips/defconfig | 31 | ||||
-rw-r--r-- | arch/mips/kernel/irixelf.c | 4 | ||||
-rw-r--r-- | arch/mips/kernel/irq.c | 10 | ||||
-rw-r--r-- | arch/mips/kernel/mips_ksyms.c | 4 | ||||
-rw-r--r-- | arch/mips/kernel/signal.c | 4 | ||||
-rw-r--r-- | arch/mips/kernel/syscall.c | 40 | ||||
-rw-r--r-- | arch/mips/kernel/syscalls.h | 10 | ||||
-rw-r--r-- | arch/mips/kernel/sysirix.c | 45 | ||||
-rw-r--r-- | arch/mips/mm/fault.c | 4 | ||||
-rw-r--r-- | arch/mips/mm/init.c | 33 | ||||
-rw-r--r-- | arch/mips/mm/umap.c | 2 | ||||
-rw-r--r-- | arch/mips/sgi/kernel/indy_int.c | 18 | ||||
-rw-r--r-- | arch/mips/sgi/kernel/indy_timer.c | 6 |
16 files changed, 142 insertions, 89 deletions
diff --git a/arch/mips/baget/irq.c b/arch/mips/baget/irq.c index 8302faf5a..cd12ea66a 100644 --- a/arch/mips/baget/irq.c +++ b/arch/mips/baget/irq.c @@ -5,7 +5,7 @@ * Code (mostly sleleton and comments) derived from DECstation IRQ * handling. * - * $Id: irq.c,v 1.4 1999/10/09 00:00:57 ralf Exp $ + * $Id: irq.c,v 1.5 1999/12/04 03:58:59 ralf Exp $ */ #include <linux/errno.h> #include <linux/init.h> @@ -182,7 +182,7 @@ static void do_IRQ(int irq, struct pt_regs * regs) int do_random, cpu; cpu = smp_processor_id(); - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[cpu][irq]++; mask_irq(irq); @@ -204,7 +204,7 @@ static void do_IRQ(int irq, struct pt_regs * regs) printk("do_IRQ: Unregistered IRQ (0x%X) occured\n", irq); } unmask_irq(irq); - hardirq_exit(cpu); + irq_exit(cpu); /* unmasking and bottom half handling is done magically for us. */ } diff --git a/arch/mips/config.in b/arch/mips/config.in index c6a6bd704..8cfe976e9 100644 --- a/arch/mips/config.in +++ b/arch/mips/config.in @@ -1,4 +1,4 @@ -# $Id: config.in,v 1.36 2000/01/27 23:45:24 ralf Exp $ +# $Id: config.in,v 1.37 2000/01/29 01:41:59 ralf Exp $ # For a description of the syntax of this configuration file, # see the Configure script. # @@ -124,6 +124,10 @@ define_bool CONFIG_BINFMT_ELF y tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC bool 'Networking support' CONFIG_NET + +source drivers/pci/Config.in +source drivers/pcmcia/Config.in + bool 'System V IPC' CONFIG_SYSVIPC bool 'BSD Process Accounting' CONFIG_BSD_PROCESS_ACCT bool 'Sysctl support' CONFIG_SYSCTL @@ -141,6 +145,8 @@ if [ "$CONFIG_MODULES" = "y" ]; then bool ' Kernel module loader' CONFIG_KMOD fi +source drivers/pci/Config.in + endmenu if [ "$CONFIG_DECSTATION" = "y" ]; then diff --git a/arch/mips/dec/irq.c b/arch/mips/dec/irq.c index c60047a41..b6841cb55 100644 --- a/arch/mips/dec/irq.c +++ b/arch/mips/dec/irq.c @@ -4,7 +4,7 @@ * Copyright (C) 1992 Linus Torvalds * Copyright (C) 1994, 1995, 1996, 1997 Ralf Baechle * - * $Id: irq.c,v 1.4 1999/10/09 00:00:57 ralf Exp $ + * $Id: irq.c,v 1.5 1999/12/04 03:58:59 ralf Exp $ */ #include <linux/errno.h> #include <linux/init.h> @@ -127,7 +127,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs) int do_random, cpu; cpu = smp_processor_id(); - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[cpu][irq]++; mask_irq(irq); @@ -147,7 +147,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs *regs) unmask_irq(irq); __cli(); } - hardirq_exit(cpu); + irq_exit(cpu); /* unmasking and bottom half handling is done magically for us. */ } diff --git a/arch/mips/defconfig b/arch/mips/defconfig index 48c4298cb..d64e49531 100644 --- a/arch/mips/defconfig +++ b/arch/mips/defconfig @@ -47,6 +47,11 @@ CONFIG_FORWARD_KEYBOARD=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set CONFIG_NET=y + +# +# PCMCIA/CardBus support +# +# CONFIG_PCMCIA is not set CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y @@ -201,6 +206,11 @@ CONFIG_MOUSE=y CONFIG_PSMOUSE=y # CONFIG_82C710_MOUSE is not set # CONFIG_PC110_PAD is not set + +# +# Joysticks +# +# CONFIG_JOYSTICK is not set # CONFIG_QIC02_TAPE is not set # @@ -214,11 +224,6 @@ CONFIG_PSMOUSE=y # Video For Linux # # CONFIG_VIDEO_DEV is not set - -# -# Joystick support -# -# CONFIG_JOYSTICK is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -228,14 +233,11 @@ CONFIG_PSMOUSE=y # # CONFIG_FTAPE is not set # CONFIG_DRM is not set +# CONFIG_DRM_TDFX is not set +# CONFIG_AGP is not set # -# PCMCIA character device support -# -# CONFIG_PCMCIA_SERIAL_CS is not set - -# -# USB drivers - not for the faint of heart +# Support for USB # # CONFIG_USB is not set @@ -260,7 +262,6 @@ CONFIG_AUTOFS_FS=y # CONFIG_EFS_FS is not set CONFIG_ISO9660_FS=y # CONFIG_JOLIET is not set -# CONFIG_UDF_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_NTFS_FS is not set # CONFIG_HPFS_FS is not set @@ -269,6 +270,7 @@ CONFIG_PROC_FS=y # CONFIG_ROMFS_FS is not set CONFIG_EXT2_FS=y # CONFIG_SYSV_FS is not set +# CONFIG_UDF_FS is not set # CONFIG_UFS_FS is not set # @@ -278,7 +280,7 @@ CONFIG_EXT2_FS=y CONFIG_NFS_FS=y CONFIG_ROOT_NFS=y CONFIG_NFSD=y -# CONFIG_NFSD_SUN is not set +# CONFIG_NFSD_V3 is not set CONFIG_SUNRPC=y CONFIG_LOCKD=y # CONFIG_SMB_FS is not set @@ -289,9 +291,6 @@ CONFIG_LOCKD=y # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_UNIXWARE_DISKLABEL is not set CONFIG_SGI_PARTITION=y # CONFIG_SUN_PARTITION is not set # CONFIG_NLS is not set diff --git a/arch/mips/kernel/irixelf.c b/arch/mips/kernel/irixelf.c index 080e08cfb..b0225f750 100644 --- a/arch/mips/kernel/irixelf.c +++ b/arch/mips/kernel/irixelf.c @@ -1,4 +1,4 @@ -/* $Id: irixelf.c,v 1.22 1999/10/09 00:00:58 ralf Exp $ +/* $Id: irixelf.c,v 1.23 2000/01/29 01:41:59 ralf Exp $ * * irixelf.c: Code to load IRIX ELF executables which conform to * the MIPS ABI. @@ -31,7 +31,7 @@ #include <linux/elfcore.h> #include <asm/uaccess.h> -#include <asm/pgtable.h> +#include <asm/pgalloc.h> #include <asm/mipsregs.h> #include <asm/prctl.h> diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c index 88cdb7bf5..92d125137 100644 --- a/arch/mips/kernel/irq.c +++ b/arch/mips/kernel/irq.c @@ -1,4 +1,4 @@ -/* $Id: irq.c,v 1.17 1999/12/04 03:59:00 ralf Exp $ +/* $Id: irq.c,v 1.18 2000/01/26 00:07:44 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -146,7 +146,7 @@ asmlinkage void i8259_do_irq(int irq, struct pt_regs *regs) int do_random, cpu; cpu = smp_processor_id(); - hardirq_enter(cpu); + irq_enter(cpu); if (irq >= 16) goto out; @@ -174,7 +174,7 @@ asmlinkage void i8259_do_irq(int irq, struct pt_regs *regs) unmask_irq (irq); out: - hardirq_exit(cpu); + irq_exit(cpu); } /* @@ -190,7 +190,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs) int do_random, cpu; cpu = smp_processor_id(); - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[cpu][irq]++; action = *(irq + irq_action); @@ -208,7 +208,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs) add_interrupt_randomness(irq); __cli(); } - hardirq_exit(cpu); + irq_exit(cpu); /* unmasking and bottom half handling is done magically for us. */ } diff --git a/arch/mips/kernel/mips_ksyms.c b/arch/mips/kernel/mips_ksyms.c index 74d7373d4..57e9bedfb 100644 --- a/arch/mips/kernel/mips_ksyms.c +++ b/arch/mips/kernel/mips_ksyms.c @@ -1,4 +1,4 @@ -/* $Id: mips_ksyms.c,v 1.22 1999/12/04 03:59:00 ralf Exp $ +/* $Id: mips_ksyms.c,v 1.23 2000/01/29 01:41:59 ralf Exp $ * * Export MIPS-specific functions needed for loadable modules. * @@ -22,7 +22,7 @@ #include <asm/floppy.h> #include <asm/io.h> #include <asm/page.h> -#include <asm/pgtable.h> +#include <asm/pgalloc.h> #include <asm/sgi/sgihpc.h> #include <asm/softirq.h> #include <asm/uaccess.h> diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index 92df924a5..5142258a3 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c @@ -1,4 +1,4 @@ -/* $Id: signal.c,v 1.22 1999/09/28 22:25:48 ralf Exp $ +/* $Id: signal.c,v 1.23 1999/10/09 00:00:58 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -618,7 +618,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs) case SIGQUIT: case SIGILL: case SIGTRAP: case SIGABRT: case SIGFPE: case SIGSEGV: - case SIGBUS: + case SIGBUS: case SIGSYS: case SIGXCPU: case SIGXFSZ: if (do_coredump(signr, regs)) exit_code |= 0x80; /* FALLTHRU */ diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c index fbf2539c5..0f5124280 100644 --- a/arch/mips/kernel/syscall.c +++ b/arch/mips/kernel/syscall.c @@ -1,4 +1,4 @@ -/* $Id: syscall.c,v 1.11 1999/10/09 00:00:58 ralf Exp $ +/* $Id: syscall.c,v 1.12 1999/12/04 03:59:00 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -55,32 +55,48 @@ out: return res; } -asmlinkage unsigned long sys_mmap(unsigned long addr, size_t len, int prot, - int flags, int fd, off_t offset) +/* common code for old and new mmaps */ +static inline long +do_mmap2(unsigned long addr, unsigned long len, unsigned long prot, + unsigned long flags, unsigned long fd, unsigned long pgoff) { + int error = -EBADF; struct file * file = NULL; - unsigned long error = -EFAULT; - down(¤t->mm->mmap_sem); - lock_kernel(); + flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); if (!(flags & MAP_ANONYMOUS)) { - error = -EBADF; file = fget(fd); if (!file) goto out; } - flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); - error = do_mmap(file, addr, len, prot, flags, offset); - if (file) - fput(file); -out: + down(¤t->mm->mmap_sem); + lock_kernel(); + + error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); + unlock_kernel(); up(¤t->mm->mmap_sem); + if (file) + fput(file); +out: return error; } +asmlinkage unsigned long old_mmap(unsigned long addr, size_t len, int prot, + int flags, int fd, off_t offset) +{ + return do_mmap2(addr, len, prot, flags, fd, offset >> PAGE_SHIFT); +} + +asmlinkage long +sys_mmap2(unsigned long addr, unsigned long len, unsigned long prot, + unsigned long flags, unsigned long fd, unsigned long pgoff) +{ + return do_mmap2(addr, len, prot, flags, fd, pgoff); +} + asmlinkage int sys_fork(struct pt_regs regs) { int res; diff --git a/arch/mips/kernel/syscalls.h b/arch/mips/kernel/syscalls.h index 7dd03b640..be6f4691a 100644 --- a/arch/mips/kernel/syscalls.h +++ b/arch/mips/kernel/syscalls.h @@ -1,4 +1,4 @@ -/* $Id: syscalls.h,v 1.18 1999/10/09 00:00:58 ralf Exp $ +/* $Id: syscalls.h,v 1.19 2000/01/29 01:41:59 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -91,7 +91,7 @@ SYS(sys_sigsuspend, 0) SYS(sys_sigpending, 1) SYS(sys_sethostname, 2) SYS(sys_setrlimit, 2) /* 4075 */ -SYS(sys_old_getrlimit, 2) +SYS(sys_getrlimit, 2) SYS(sys_getrusage, 2) SYS(sys_gettimeofday, 2) SYS(sys_settimeofday, 2) @@ -105,7 +105,7 @@ SYS(sys_uselib, 1) SYS(sys_swapon, 2) SYS(sys_reboot, 3) SYS(old_readdir, 3) -SYS(sys_mmap, 6) /* 4090 */ +SYS(old_mmap, 6) /* 4090 */ SYS(sys_munmap, 2) SYS(sys_truncate, 2) SYS(sys_ftruncate, 2) @@ -225,4 +225,6 @@ SYS(sys_sigaltstack, 0) SYS(sys_sendfile, 3) SYS(sys_ni_syscall, 0) SYS(sys_ni_syscall, 0) -SYS(sys_getrlimit, 2) /* 4210 */ +SYS(sys_mmap2, 6) /* 4210 */ +SYS(sys_truncate64, 2) +SYS(sys_ftruncate64, 2) diff --git a/arch/mips/kernel/sysirix.c b/arch/mips/kernel/sysirix.c index db3a04665..acec2b569 100644 --- a/arch/mips/kernel/sysirix.c +++ b/arch/mips/kernel/sysirix.c @@ -1,4 +1,4 @@ -/* $Id: sysirix.c,v 1.21 1999/10/09 00:00:58 ralf Exp $ +/* $Id: sysirix.c,v 1.22 1999/12/04 03:59:00 ralf Exp $ * * sysirix.c: IRIX system call emulation. * @@ -1103,21 +1103,20 @@ asmlinkage unsigned long irix_mmap32(unsigned long addr, size_t len, int prot, struct file *file = NULL; unsigned long retval; - down(¤t->mm->mmap_sem); lock_kernel(); - if(!(flags & MAP_ANONYMOUS)) { - if(!(file = fget(fd))) { + if (!(flags & MAP_ANONYMOUS)) { + if (!(file = fget(fd))) { retval = -EBADF; goto out; } /* Ok, bad taste hack follows, try to think in something else * when reading this. */ - if (flags & IRIX_MAP_AUTOGROW){ + if (flags & IRIX_MAP_AUTOGROW) { unsigned long old_pos; long max_size = offset + len; - if (max_size > file->f_dentry->d_inode->i_size){ + if (max_size > file->f_dentry->d_inode->i_size) { old_pos = sys_lseek (fd, max_size - 1, 0); sys_write (fd, "", 1); sys_lseek (fd, old_pos, 0); @@ -1133,7 +1132,6 @@ asmlinkage unsigned long irix_mmap32(unsigned long addr, size_t len, int prot, out: unlock_kernel(); - up(¤t->mm->mmap_sem); return retval; } @@ -1693,10 +1691,9 @@ sys_mmap(unsigned long addr, size_t len, int prot, int flags, int fd, asmlinkage int irix_mmap64(struct pt_regs *regs) { int len, prot, flags, fd, off1, off2, error, base = 0; - unsigned long addr, *sp; - struct file *file; + unsigned long addr, pgoff, *sp; + struct file *file = NULL; - down(¤t->mm->mmap_sem); lock_kernel(); if (regs->regs[2] == 1000) base = 1; @@ -1721,34 +1718,46 @@ asmlinkage int irix_mmap64(struct pt_regs *regs) __get_user(off1, &sp[2]); __get_user(off2, &sp[3]); } - if (off1) { - error = -EINVAL; + + if (off1 & PAGE_MASK) { + error = -EOVERFLOW; goto out; } + pgoff = (off1 << (32 - PAGE_SHIFT)) | (off2 >> PAGE_SHIFT); + if (!(flags & MAP_ANONYMOUS)) { - if(!(file = fcheck(fd))) { + if (!(file = fcheck(fd))) { error = -EBADF; goto out; } - /* Ok, bad taste hack follows, try to think in something else when reading this */ - if (flags & IRIX_MAP_AUTOGROW){ + /* Ok, bad taste hack follows, try to think in something else + when reading this */ + if (flags & IRIX_MAP_AUTOGROW) { unsigned long old_pos; long max_size = off2 + len; - if (max_size > file->f_dentry->d_inode->i_size){ + if (max_size > file->f_dentry->d_inode->i_size) { old_pos = sys_lseek (fd, max_size - 1, 0); sys_write (fd, "", 1); sys_lseek (fd, old_pos, 0); } } } - - error = sys_mmap(addr, (size_t) len, prot, flags, fd, off2); + + flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); + + down(¤t->mm->mmap_sem); + error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); + up(¤t->mm->mmap_sem); + + if (file) + fput(file); out: unlock_kernel(); + return error; } diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index a6416c4ca..cfcfc9c8b 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c @@ -1,4 +1,4 @@ -/* $Id: fault.c,v 1.13 1999/10/09 00:00:58 ralf Exp $ +/* $Id: fault.c,v 1.14 1999/12/04 03:59:00 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -21,7 +21,7 @@ #include <linux/version.h> #include <asm/hardirq.h> -#include <asm/pgtable.h> +#include <asm/pgalloc.h> #include <asm/mmu_context.h> #include <asm/softirq.h> #include <asm/system.h> diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index afd1c6b70..8420085e0 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c @@ -1,4 +1,4 @@ -/* $Id: init.c,v 1.23 2000/01/27 23:45:25 ralf Exp $ +/* $Id: init.c,v 1.24 2000/01/29 01:41:59 ralf Exp $ * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive @@ -33,6 +33,7 @@ #include <asm/jazzdma.h> #include <asm/system.h> #include <asm/pgtable.h> +#include <asm/pgalloc.h> #ifdef CONFIG_SGI_IP22 #include <asm/sgialib.h> #endif @@ -249,15 +250,22 @@ extern char __init_begin, __init_end; void __init paging_init(void) { - unsigned int zones_size[2]; + unsigned int zones_size[MAX_NR_ZONES] = {0, 0, 0}; + unsigned long max_dma, low; /* Initialize the entire pgd. */ pgd_init((unsigned long)swapper_pg_dir); pgd_init((unsigned long)swapper_pg_dir + PAGE_SIZE / 2); - return free_area_init(max_low_pfn); - zones_size[0] = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; - zones_size[1] = max_low_pfn - zones_size[0]; + max_dma = virt_to_phys((char *)MAX_DMA_ADDRESS) >> PAGE_SHIFT; + low = max_low_pfn; + + if (low < max_dma) + zones_size[ZONE_DMA] = low; + else { + zones_size[ZONE_DMA] = max_dma; + zones_size[ZONE_NORMAL] = low - max_dma; + } free_area_init(zones_size); } @@ -287,7 +295,7 @@ void __init mem_init(void) datasize = (unsigned long) &_edata - (unsigned long) &_fdata; initsize = (unsigned long) &__init_end - (unsigned long) &__init_begin; - printk("Memory: %uk/%luk available (%ldk kernel code, %ldk reserved, " + printk("Memory: %luk/%luk available (%ldk kernel code, %ldk reserved, " "%ldk data, %ldk init)\n", (unsigned long) nr_free_pages() << (PAGE_SHIFT-10), ram << (PAGE_SHIFT-10), @@ -297,6 +305,19 @@ void __init mem_init(void) initsize >> 10); } +#ifdef CONFIG_BLK_DEV_INITRD +void free_initrd_mem(unsigned long start, unsigned long end) +{ + for (; start < end; start += PAGE_SIZE) { + ClearPageReserved(mem_map + MAP_NR(start)); + set_page_count(mem_map+MAP_NR(start), 1); + free_page(start); + totalram_pages++; + } + printk ("Freeing initrd memory: %ldk freed\n", (end - start) >> 10); +} +#endif + extern char __init_begin, __init_end; extern void prom_free_prom_memory(void); diff --git a/arch/mips/mm/umap.c b/arch/mips/mm/umap.c index 3ca4424eb..2024e9dce 100644 --- a/arch/mips/mm/umap.c +++ b/arch/mips/mm/umap.c @@ -26,7 +26,7 @@ #include <linux/swap.h> #include <asm/system.h> -#include <asm/pgtable.h> +#include <asm/pgalloc.h> #include <asm/page.h> static inline void diff --git a/arch/mips/sgi/kernel/indy_int.c b/arch/mips/sgi/kernel/indy_int.c index 971cbdcea..916b0873a 100644 --- a/arch/mips/sgi/kernel/indy_int.c +++ b/arch/mips/sgi/kernel/indy_int.c @@ -1,4 +1,4 @@ -/* $Id: indy_int.c,v 1.15 1999/10/21 00:23:05 ralf Exp $ +/* $Id: indy_int.c,v 1.16 1999/12/04 03:59:00 ralf Exp $ * * indy_int.c: Routines for generic manipulation of the INT[23] ASIC * found on INDY workstations.. @@ -272,7 +272,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs) int do_random, cpu; cpu = smp_processor_id(); - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[0][irq]++; printk("Got irq %d, press a key.", irq); @@ -308,7 +308,7 @@ asmlinkage void do_IRQ(int irq, struct pt_regs * regs) add_interrupt_randomness(irq); __cli(); } - hardirq_exit(cpu); + irq_exit(cpu); /* unmasking and bottom half handling is done magically for us. */ } @@ -451,10 +451,10 @@ void indy_local0_irqdispatch(struct pt_regs *regs) /* if action == NULL, then we do have a handler for the irq */ if ( action == NULL ) { goto no_handler; } - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[0][irq + 16]++; action->handler(irq, action->dev_id, regs); - hardirq_exit(cpu); + irq_exit(cpu); goto end; no_handler: @@ -489,10 +489,10 @@ void indy_local1_irqdispatch(struct pt_regs *regs) /* if action == NULL, then we do have a handler for the irq */ if ( action == NULL ) { goto no_handler; } - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[0][irq + 24]++; action->handler(irq, action->dev_id, regs); - hardirq_exit(cpu); + irq_exit(cpu); goto end; no_handler: @@ -507,13 +507,13 @@ void indy_buserror_irq(struct pt_regs *regs) int cpu = smp_processor_id(); int irq = 6; - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[0][irq]++; printk("Got a bus error IRQ, shouldn't happen yet\n"); show_regs(regs); printk("Spinning...\n"); while(1); - hardirq_exit(cpu); + irq_exit(cpu); } /* Misc. crap just to keep the kernel linking... */ diff --git a/arch/mips/sgi/kernel/indy_timer.c b/arch/mips/sgi/kernel/indy_timer.c index 00c1c3c68..3306cdc25 100644 --- a/arch/mips/sgi/kernel/indy_timer.c +++ b/arch/mips/sgi/kernel/indy_timer.c @@ -1,4 +1,4 @@ -/* $Id: indy_timer.c,v 1.16 2000/01/17 23:32:46 ralf Exp $ +/* $Id: indy_timer.c,v 1.17 2000/01/21 22:34:03 ralf Exp $ * * indy_timer.c: Setting up the clock on the INDY 8254 controller. * @@ -269,12 +269,12 @@ void indy_8254timer_irq(void) int cpu = smp_processor_id(); int irq = 4; - hardirq_enter(cpu); + irq_enter(cpu); kstat.irqs[0][irq]++; printk("indy_8254timer_irq: Whoops, should not have gotten this IRQ\n"); prom_getchar(); prom_imode(); - hardirq_exit(cpu); + irq_exit(cpu); } void do_gettimeofday(struct timeval *tv) |