summaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/irixelf.c4
-rw-r--r--arch/mips/kernel/irq.c10
-rw-r--r--arch/mips/kernel/pci.c53
-rw-r--r--arch/mips/kernel/syscalls.h7
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)