summaryrefslogtreecommitdiffstats
path: root/arch/alpha
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-04-19 04:00:00 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-04-19 04:00:00 +0000
commit46e045034336a2cc90c1798cd7cc07af744ddfd6 (patch)
tree3b9b51fc482e729f663d25333e77fbed9aaa939a /arch/alpha
parent31dc59d503a02e84c4de98826452acaeb56dc15a (diff)
Merge with Linux 2.3.99-pre4.
Diffstat (limited to 'arch/alpha')
-rw-r--r--arch/alpha/boot/Makefile4
-rw-r--r--arch/alpha/config.in6
-rw-r--r--arch/alpha/defconfig2
-rw-r--r--arch/alpha/kernel/Makefile4
-rw-r--r--arch/alpha/kernel/irq_i8259.c6
-rw-r--r--arch/alpha/kernel/osf_sys.c89
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;
}