diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-04-19 04:00:00 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-04-19 04:00:00 +0000 |
commit | 46e045034336a2cc90c1798cd7cc07af744ddfd6 (patch) | |
tree | 3b9b51fc482e729f663d25333e77fbed9aaa939a /arch/alpha | |
parent | 31dc59d503a02e84c4de98826452acaeb56dc15a (diff) |
Merge with Linux 2.3.99-pre4.
Diffstat (limited to 'arch/alpha')
-rw-r--r-- | arch/alpha/boot/Makefile | 4 | ||||
-rw-r--r-- | arch/alpha/config.in | 6 | ||||
-rw-r--r-- | arch/alpha/defconfig | 2 | ||||
-rw-r--r-- | arch/alpha/kernel/Makefile | 4 | ||||
-rw-r--r-- | arch/alpha/kernel/irq_i8259.c | 6 | ||||
-rw-r--r-- | arch/alpha/kernel/osf_sys.c | 89 |
6 files changed, 43 insertions, 68 deletions
diff --git a/arch/alpha/boot/Makefile b/arch/alpha/boot/Makefile index ee2ac0ac0..6bd6cb03f 100644 --- a/arch/alpha/boot/Makefile +++ b/arch/alpha/boot/Makefile @@ -11,9 +11,9 @@ LINKFLAGS = -static -T bootloader.lds #-N -relax .S.s: - $(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -E -o $*.o $< + $(CPP) $(AFLAGS) -traditional -o $*.o $< .S.o: - $(CC) -D__ASSEMBLY__ $(AFLAGS) -traditional -c -o $*.o $< + $(CC) $(AFLAGS) -traditional -c -o $*.o $< OBJECTS = head.o main.o BPOBJECTS = head.o bootp.o diff --git a/arch/alpha/config.in b/arch/alpha/config.in index d73afb558..6053ae25c 100644 --- a/arch/alpha/config.in +++ b/arch/alpha/config.in @@ -65,6 +65,7 @@ unset CONFIG_ALPHA_BROKEN_IRQ_MASK # Most of these machines have ISA slots; not exactly sure which don't, # and this doesn't activate hordes of code, so do it always. define_bool CONFIG_ISA y +define_bool CONFIG_SBUS n if [ "$CONFIG_ALPHA_JENSEN" = "y" ] then @@ -189,6 +190,8 @@ bool 'Support for hot-pluggable devices' CONFIG_HOTPLUG if [ "$CONFIG_HOTPLUG" = "y" ] ; then source drivers/pcmcia/Config.in +else + define_bool CONFIG_PCMCIA n fi bool 'Networking support' CONFIG_NET @@ -274,7 +277,6 @@ endmenu source drivers/char/Config.in -source drivers/usb/Config.in #source drivers/misc/Config.in @@ -300,6 +302,8 @@ if [ "$CONFIG_SOUND" != "n" ]; then fi endmenu +source drivers/usb/Config.in + mainmenu_option next_comment comment 'Kernel hacking' diff --git a/arch/alpha/defconfig b/arch/alpha/defconfig index 03be84794..40676926c 100644 --- a/arch/alpha/defconfig +++ b/arch/alpha/defconfig @@ -46,11 +46,13 @@ CONFIG_ALPHA_GENERIC=y # CONFIG_ALPHA_SABLE is not set # CONFIG_ALPHA_TAKARA is not set CONFIG_ISA=y +# CONFIG_SBUS is not set CONFIG_PCI=y CONFIG_ALPHA_BROKEN_IRQ_MASK=y # CONFIG_SMP is not set CONFIG_PCI_NAMES=y # CONFIG_HOTPLUG is not set +# CONFIG_PCMCIA is not set CONFIG_NET=y CONFIG_SYSVIPC=y # CONFIG_BSD_PROCESS_ACCT is not set diff --git a/arch/alpha/kernel/Makefile b/arch/alpha/kernel/Makefile index 9d87b6e0c..3a0a4ec0b 100644 --- a/arch/alpha/kernel/Makefile +++ b/arch/alpha/kernel/Makefile @@ -8,9 +8,9 @@ # Note 2! The CFLAGS definitions are now in the main makefile... .S.s: - $(CC) -D__ASSEMBLY__ $(AFLAGS) -E -o $*.s $< + $(CPP) $(AFLAGS) -o $*.s $< .S.o: - $(CC) -D__ASSEMBLY__ $(AFLAGS) -c -o $*.o $< + $(CC) $(AFLAGS) -c -o $*.o $< O_TARGET := kernel.o O_OBJS := entry.o traps.o process.o osf_sys.o irq.o irq_alpha.o \ diff --git a/arch/alpha/kernel/irq_i8259.c b/arch/alpha/kernel/irq_i8259.c index a47178050..79a1c4fb5 100644 --- a/arch/alpha/kernel/irq_i8259.c +++ b/arch/alpha/kernel/irq_i8259.c @@ -146,12 +146,6 @@ isa_device_interrupt(unsigned long vector, struct pt_regs *regs) */ int j = *(vuip) IACK_SC; j &= 0xff; - if (j == 7) { - if (!(inb(0x20) & 0x80)) { - /* It's only a passive release... */ - return; - } - } handle_irq(j, regs); } #endif diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index a7110bf23..299a1b338 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c @@ -42,7 +42,7 @@ #include <asm/hwrpb.h> #include <asm/processor.h> -extern int do_mount(struct block_device *, const char *, const char *, char *, int, void *); +extern long do_sys_mount(char *, char *, char *, int, void *); extern int do_pipe(int *); extern asmlinkage int sys_swapon(const char *specialfile, int swap_flags); @@ -319,20 +319,16 @@ asmlinkage int osf_statfs(char *path, struct osf_statfs *buffer, unsigned long b asmlinkage int osf_fstatfs(unsigned long fd, struct osf_statfs *buffer, unsigned long bufsiz) { struct file *file; - struct dentry *dentry; int retval; - lock_kernel(); retval = -EBADF; file = fget(fd); - if (!file) - goto out; - dentry = file->f_dentry; - if (dentry) - retval = do_osf_statfs(dentry, buffer, bufsiz); - fput(file); -out: - unlock_kernel(); + if (file) { + lock_kernel(); + retval = do_osf_statfs(file->f_dentry, buffer, bufsiz); + unlock_kernel(); + fput(file); + } return retval; } @@ -363,32 +359,6 @@ struct procfs_args { uid_t exroot; }; -static struct dentry *getdev(const char *name, int rdonly) -{ - struct dentry *dentry; - struct inode *inode; - int retval; - - dentry = namei(name); - retval = PTR_ERR(dentry); - if (IS_ERR(dentry)) - return dentry; - - retval = -ENOTBLK; - inode = dentry->d_inode; - if (!S_ISBLK(inode->i_mode)) - goto out_dput; - - retval = -EACCES; - if (IS_NODEV(inode)) - goto out_dput; - return dentry; - -out_dput: - dput(dentry); - return ERR_PTR(retval); -} - /* * We can't actually handle ufs yet, so we translate UFS mounts to * ext2fs mounts. I wouldn't mind a UFS filesystem, but the UFS @@ -400,20 +370,18 @@ out_dput: static int osf_ufs_mount(char *dirname, struct ufs_args *args, int flags) { int retval; - struct dentry *dentry; struct cdfs_args tmp; + char *devname; retval = -EFAULT; if (copy_from_user(&tmp, args, sizeof(tmp))) goto out; - - dentry = getdev(tmp.devname, 0); - retval = PTR_ERR(dentry); - if (IS_ERR(dentry)) + devname = getname(tmp.devname); + retval = PTR_ERR(devname); + if (IS_ERR(devname)) goto out; - retval = do_mount(dentry->d_inode->i_bdev, tmp.devname, dirname, - "ext2", flags, NULL); - dput(dentry); + retval = do_sys_mount(devname, dirname, "ext2", flags, NULL); + putname(devname); out: return retval; } @@ -421,20 +389,18 @@ out: static int osf_cdfs_mount(char *dirname, struct cdfs_args *args, int flags) { int retval; - struct dentry * dentry; struct cdfs_args tmp; + char *devname; retval = -EFAULT; if (copy_from_user(&tmp, args, sizeof(tmp))) goto out; - - dentry = getdev(tmp.devname, 1); - retval = PTR_ERR(dentry); - if (IS_ERR(dentry)) + devname = getname(tmp.devname); + retval = PTR_ERR(devname); + if (IS_ERR(devname)) goto out; - retval = do_mount(dentry->d_inode->i_bdev, tmp.devname, dirname, - "iso9660", flags, NULL); - dput(dentry); + retval = do_sys_mount(devname, dirname, "iso9660", flags, NULL); + putname(devname); out: return retval; } @@ -445,27 +411,36 @@ static int osf_procfs_mount(char *dirname, struct procfs_args *args, int flags) if (copy_from_user(&tmp, args, sizeof(tmp))) return -EFAULT; - return do_mount(NULL, "", dirname, "proc", flags, NULL); + + return do_sys_mount("", dirname, "proc", flags, NULL); } asmlinkage int osf_mount(unsigned long typenr, char *path, int flag, void *data) { int retval = -EINVAL; + char *name; lock_kernel(); + + name = getname(path); + retval = PTR_ERR(name); + if (IS_ERR(name)) + goto out; switch (typenr) { case 1: - retval = osf_ufs_mount(path, (struct ufs_args *) data, flag); + retval = osf_ufs_mount(name, (struct ufs_args *) data, flag); break; case 6: - retval = osf_cdfs_mount(path, (struct cdfs_args *) data, flag); + retval = osf_cdfs_mount(name, (struct cdfs_args *) data, flag); break; case 9: - retval = osf_procfs_mount(path, (struct procfs_args *) data, flag); + retval = osf_procfs_mount(name, (struct procfs_args *) data, flag); break; default: printk("osf_mount(%ld, %x)\n", typenr, flag); } + putname(name); +out: unlock_kernel(); return retval; } |