projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[MIPS] Make SB1 cache flushes not to use on_each_cpu
[powerpc.git]
/
arch
/
alpha
/
kernel
/
osf_sys.c
diff --git
a/arch/alpha/kernel/osf_sys.c
b/arch/alpha/kernel/osf_sys.c
index
31afe3d
..
ad61736
100644
(file)
--- a/
arch/alpha/kernel/osf_sys.c
+++ b/
arch/alpha/kernel/osf_sys.c
@@
-111,22
+111,26
@@
struct osf_dirent_callback {
static int
osf_filldir(void *__buf, const char *name, int namlen, loff_t offset,
static int
osf_filldir(void *__buf, const char *name, int namlen, loff_t offset,
-
ino_t
ino, unsigned int d_type)
+
u64
ino, unsigned int d_type)
{
struct osf_dirent __user *dirent;
struct osf_dirent_callback *buf = (struct osf_dirent_callback *) __buf;
unsigned int reclen = ROUND_UP(NAME_OFFSET + namlen + 1);
{
struct osf_dirent __user *dirent;
struct osf_dirent_callback *buf = (struct osf_dirent_callback *) __buf;
unsigned int reclen = ROUND_UP(NAME_OFFSET + namlen + 1);
+ unsigned int d_ino;
buf->error = -EINVAL; /* only used if we fail */
if (reclen > buf->count)
return -EINVAL;
buf->error = -EINVAL; /* only used if we fail */
if (reclen > buf->count)
return -EINVAL;
+ d_ino = ino;
+ if (sizeof(d_ino) < sizeof(ino) && d_ino != ino)
+ return -EOVERFLOW;
if (buf->basep) {
if (put_user(offset, buf->basep))
return -EFAULT;
buf->basep = NULL;
}
dirent = buf->dirent;
if (buf->basep) {
if (put_user(offset, buf->basep))
return -EFAULT;
buf->basep = NULL;
}
dirent = buf->dirent;
- put_user(ino, &dirent->d_ino);
+ put_user(
d_
ino, &dirent->d_ino);
put_user(namlen, &dirent->d_namlen);
put_user(reclen, &dirent->d_reclen);
if (copy_to_user(dirent->d_name, name, namlen) ||
put_user(namlen, &dirent->d_namlen);
put_user(reclen, &dirent->d_reclen);
if (copy_to_user(dirent->d_name, name, namlen) ||
@@
-244,7
+248,7
@@
do_osf_statfs(struct dentry * dentry, struct osf_statfs __user *buffer,
unsigned long bufsiz)
{
struct kstatfs linux_stat;
unsigned long bufsiz)
{
struct kstatfs linux_stat;
- int error = vfs_statfs(dentry
->d_inode->i_sb
, &linux_stat);
+ int error = vfs_statfs(dentry, &linux_stat);
if (!error)
error = linux_to_osf_statfs(&linux_stat, buffer, bufsiz);
return error;
if (!error)
error = linux_to_osf_statfs(&linux_stat, buffer, bufsiz);
return error;
@@
-402,15
+406,15
@@
osf_utsname(char __user *name)
down_read(&uts_sem);
error = -EFAULT;
down_read(&uts_sem);
error = -EFAULT;
- if (copy_to_user(name + 0,
system_utsname.
sysname, 32))
+ if (copy_to_user(name + 0,
utsname()->
sysname, 32))
goto out;
goto out;
- if (copy_to_user(name + 32,
system_utsname.
nodename, 32))
+ if (copy_to_user(name + 32,
utsname()->
nodename, 32))
goto out;
goto out;
- if (copy_to_user(name + 64,
system_utsname.
release, 32))
+ if (copy_to_user(name + 64,
utsname()->
release, 32))
goto out;
goto out;
- if (copy_to_user(name + 96,
system_utsname.
version, 32))
+ if (copy_to_user(name + 96,
utsname()->
version, 32))
goto out;
goto out;
- if (copy_to_user(name + 128,
system_utsname.
machine, 32))
+ if (copy_to_user(name + 128,
utsname()->
machine, 32))
goto out;
error = 0;
goto out;
error = 0;
@@
-449,8
+453,8
@@
osf_getdomainname(char __user *name, int namelen)
down_read(&uts_sem);
for (i = 0; i < len; ++i) {
down_read(&uts_sem);
for (i = 0; i < len; ++i) {
- __put_user(
system_utsname.
domainname[i], name + i);
- if (
system_utsname.
domainname[i] == '\0')
+ __put_user(
utsname()->
domainname[i], name + i);
+ if (
utsname()->
domainname[i] == '\0')
break;
}
up_read(&uts_sem);
break;
}
up_read(&uts_sem);
@@
-607,12
+611,12
@@
osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss)
asmlinkage long
osf_sysinfo(int command, char __user *buf, long count)
{
asmlinkage long
osf_sysinfo(int command, char __user *buf, long count)
{
-
static char *
sysinfo_table[] = {
-
system_utsname.
sysname,
-
system_utsname.
nodename,
-
system_utsname.
release,
-
system_utsname.
version,
-
system_utsname.
machine,
+
char *
sysinfo_table[] = {
+
utsname()->
sysname,
+
utsname()->
nodename,
+
utsname()->
release,
+
utsname()->
version,
+
utsname()->
machine,
"alpha", /* instruction set architecture */
"dummy", /* hardware serial number */
"dummy", /* hardware manufacturer */
"alpha", /* instruction set architecture */
"dummy", /* hardware serial number */
"dummy", /* hardware manufacturer */
@@
-623,12
+627,12
@@
osf_sysinfo(int command, char __user *buf, long count)
long len, err = -EINVAL;
offset = command-1;
long len, err = -EINVAL;
offset = command-1;
- if (offset >=
sizeof(sysinfo_table)/sizeof(char *
)) {
+ if (offset >=
ARRAY_SIZE(sysinfo_table
)) {
/* Digital UNIX has a few unpublished interfaces here */
printk("sysinfo(%d)", command);
goto out;
}
/* Digital UNIX has a few unpublished interfaces here */
printk("sysinfo(%d)", command);
goto out;
}
-
+
down_read(&uts_sem);
res = sysinfo_table[offset];
len = strlen(res)+1;
down_read(&uts_sem);
res = sysinfo_table[offset];
len = strlen(res)+1;