diff options
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r-- | arch/mips/kernel/irixelf.c | 4 | ||||
-rw-r--r-- | arch/mips/kernel/irq.c | 10 | ||||
-rw-r--r-- | arch/mips/kernel/pci.c | 53 | ||||
-rw-r--r-- | arch/mips/kernel/syscalls.h | 7 |
4 files changed, 20 insertions, 54 deletions
diff --git a/arch/mips/kernel/irixelf.c b/arch/mips/kernel/irixelf.c index 619aaabaa..cf2ab9fca 100644 --- a/arch/mips/kernel/irixelf.c +++ b/arch/mips/kernel/irixelf.c @@ -725,6 +725,7 @@ static inline int do_load_irix_binary(struct linux_binprm * bprm, current->mm->end_data = 0; current->mm->end_code = 0; current->mm->mmap = NULL; + current->flags &= ~PF_FORKNOEXEC; elf_entry = (unsigned int) elf_ex.e_entry; /* Do this so that we can load the interpreter, if need be. We will @@ -775,8 +776,7 @@ static inline int do_load_irix_binary(struct linux_binprm * bprm, if (current->binfmt && current->binfmt->module) __MOD_INC_USE_COUNT(current->binfmt->module); - current->suid = current->euid = current->fsuid = bprm->e_uid; - current->sgid = current->egid = current->fsgid = bprm->e_gid; + compute_creds(bprm); current->flags &= ~PF_FORKNOEXEC; bprm->p = (unsigned long) create_irix_tables((char *)bprm->p, bprm->argc, bprm->envc, diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c index 728af4cc9..9dcca6184 100644 --- a/arch/mips/kernel/irq.c +++ b/arch/mips/kernel/irq.c @@ -4,7 +4,7 @@ * Copyright (C) 1992 Linus Torvalds * Copyright (C) 1994, 1995, 1996, 1997 Ralf Baechle * - * $Id: irq.c,v 1.8 1998/03/17 22:07:35 ralf Exp $ + * $Id: irq.c,v 1.9 1998/03/22 23:27:12 ralf Exp $ */ #include <linux/errno.h> #include <linux/init.h> @@ -310,7 +310,15 @@ int probe_irq_off (unsigned long irqs) return i; } +int (*irq_cannonicalize)(int irq); + +static int 8259a_irq_cannonicalize(int irq) +{ + return ((irq == 2) ? 9 : irq); +} + __initfunc(void init_IRQ(void)) { + irq_cannonicalize = 8259a_irq_cannonicalize; irq_setup(); } diff --git a/arch/mips/kernel/pci.c b/arch/mips/kernel/pci.c index 6f7374fd2..71a57b73e 100644 --- a/arch/mips/kernel/pci.c +++ b/arch/mips/kernel/pci.c @@ -5,7 +5,6 @@ * * MIPS implementation of PCI BIOS services for PCI support. */ -#include <linux/bios32.h> #include <linux/config.h> #include <linux/init.h> #include <linux/kernel.h> @@ -36,53 +35,6 @@ int pcibios_present (void) } /* - * Given the vendor and device ids, find the n'th instance of that device - * in the system. - */ -int pcibios_find_device (unsigned short vendor, unsigned short device_id, - unsigned short index, unsigned char *bus, - unsigned char *devfn) -{ - unsigned int curr = 0; - struct pci_dev *dev; - - for (dev = pci_devices; dev; dev = dev->next) { - if (dev->vendor == vendor && dev->device == device_id) { - if (curr == index) { - *devfn = dev->devfn; - *bus = dev->bus->number; - return PCIBIOS_SUCCESSFUL; - } - ++curr; - } - } - return PCIBIOS_DEVICE_NOT_FOUND; -} - -/* - * Given the class, find the n'th instance of that device - * in the system. - */ -int pcibios_find_class (unsigned int class_code, unsigned short index, - unsigned char *bus, unsigned char *devfn) -{ - unsigned int curr = 0; - struct pci_dev *dev; - - for (dev = pci_devices; dev; dev = dev->next) { - if (dev->class == class_code) { - if (curr == index) { - *devfn = dev->devfn; - *bus = dev->bus->number; - return PCIBIOS_SUCCESSFUL; - } - ++curr; - } - } - return PCIBIOS_DEVICE_NOT_FOUND; -} - -/* * The functions below are machine specific and must be reimplented for * each PCI chipset configuration. We just run the hook to the machine * specific implementation. @@ -129,4 +81,9 @@ int pcibios_write_config_dword (unsigned char bus, unsigned char dev_fn, return pci_ops->pcibios_write_config_dword(bus, dev_fn, where, val); } +__initfunc(char *pcibios_setup(char *str)) +{ + return str; +} + #endif /* defined(CONFIG_PCI) */ diff --git a/arch/mips/kernel/syscalls.h b/arch/mips/kernel/syscalls.h index 33bec5be8..3a5c55540 100644 --- a/arch/mips/kernel/syscalls.h +++ b/arch/mips/kernel/syscalls.h @@ -7,7 +7,7 @@ * * Copyright (C) 1995, 1996 by Ralf Baechle * - * $Id: syscalls.h,v 1.10 1997/12/16 05:34:38 ralf Exp $ + * $Id: syscalls.h,v 1.11 1998/03/17 22:07:37 ralf Exp $ */ /* @@ -34,7 +34,7 @@ SYS(sys_chdir, 1) SYS(sys_time, 1) SYS(sys_mknod, 3) SYS(sys_chmod, 2) /* 4015 */ -SYS(sys_chown, 3) +SYS(sys_lchown, 3) SYS(sys_ni_syscall, 0) SYS(sys_stat, 2) SYS(sys_lseek, 3) @@ -220,4 +220,5 @@ SYS(sys_rt_sigqueueinfo, 3) SYS(sys_rt_sigsuspend, 2) SYS(sys_pread, 4) /* 4200 */ SYS(sys_pwrite, 4) -SYS(sys_lchown, 3) +SYS(sys_chown, 3) +SYS(sys_getcwd, 2) |