Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
033fbd9f
Commit
033fbd9f
authored
Sep 03, 2003
by
Anton Blanchard
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/scratch/anton/tmp3 into samba.org:/scratch/anton/export
parents
210e9f0b
61fc8737
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
27 deletions
+39
-27
arch/ppc64/kernel/sys_ppc32.c
arch/ppc64/kernel/sys_ppc32.c
+27
-25
arch/ppc64/kernel/syscalls.c
arch/ppc64/kernel/syscalls.c
+4
-2
include/asm-ppc64/uaccess.h
include/asm-ppc64/uaccess.h
+8
-0
No files found.
arch/ppc64/kernel/sys_ppc32.c
View file @
033fbd9f
...
@@ -1243,16 +1243,19 @@ asmlinkage long sys32_settimeofday(struct compat_timeval *tv, struct timezone *t
...
@@ -1243,16 +1243,19 @@ asmlinkage long sys32_settimeofday(struct compat_timeval *tv, struct timezone *t
}
}
struct
msgbuf32
{
s32
mtype
;
char
mtext
[
1
];
};
struct
msgbuf32
{
compat_long_t
mtype
;
char
mtext
[
1
];
};
struct
semid_ds32
{
struct
semid_ds32
{
struct
ipc_perm
sem_perm
;
struct
ipc_perm
sem_perm
;
compat_time_t
sem_otime
;
compat_time_t
sem_otime
;
compat_time_t
sem_ctime
;
compat_time_t
sem_ctime
;
u32
sem_base
;
compat_uptr_t
sem_base
;
u32
sem_pending
;
compat_uptr_t
sem_pending
;
u32
sem_pending_last
;
compat_uptr_t
sem_pending_last
;
u32
undo
;
compat_uptr_t
undo
;
unsigned
short
sem_nsems
;
unsigned
short
sem_nsems
;
};
};
...
@@ -1262,21 +1265,20 @@ struct semid64_ds32 {
...
@@ -1262,21 +1265,20 @@ struct semid64_ds32 {
compat_time_t
sem_otime
;
compat_time_t
sem_otime
;
unsigned
int
__unused2
;
unsigned
int
__unused2
;
compat_time_t
sem_ctime
;
compat_time_t
sem_ctime
;
u32
sem_nsems
;
compat_ulong_t
sem_nsems
;
u32
__unused3
;
compat_ulong_t
__unused3
;
u32
__unused4
;
compat_ulong_t
__unused4
;
};
};
struct
msqid_ds32
struct
msqid_ds32
{
{
struct
ipc_perm
msg_perm
;
struct
ipc_perm
msg_perm
;
u32
msg_first
;
compat_uptr_t
msg_first
;
u32
msg_last
;
compat_uptr_t
msg_last
;
compat_time_t
msg_stime
;
compat_time_t
msg_stime
;
compat_time_t
msg_rtime
;
compat_time_t
msg_rtime
;
compat_time_t
msg_ctime
;
compat_time_t
msg_ctime
;
u32
msg_lcbytes
;
compat_ulong_t
msg_lcbytes
;
u32
msg_lqbytes
;
compat_ulong_t
msg_lqbytes
;
unsigned
short
msg_cbytes
;
unsigned
short
msg_cbytes
;
unsigned
short
msg_qnum
;
unsigned
short
msg_qnum
;
unsigned
short
msg_qbytes
;
unsigned
short
msg_qbytes
;
...
@@ -1292,13 +1294,13 @@ struct msqid64_ds32 {
...
@@ -1292,13 +1294,13 @@ struct msqid64_ds32 {
compat_time_t
msg_rtime
;
compat_time_t
msg_rtime
;
unsigned
int
__unused3
;
unsigned
int
__unused3
;
compat_time_t
msg_ctime
;
compat_time_t
msg_ctime
;
unsigned
in
t
msg_cbytes
;
compat_ulong_
t
msg_cbytes
;
unsigned
in
t
msg_qnum
;
compat_ulong_
t
msg_qnum
;
unsigned
in
t
msg_qbytes
;
compat_ulong_
t
msg_qbytes
;
compat_pid_t
msg_lspid
;
compat_pid_t
msg_lspid
;
compat_pid_t
msg_lrpid
;
compat_pid_t
msg_lrpid
;
unsigned
in
t
__unused4
;
compat_ulong_
t
__unused4
;
unsigned
in
t
__unused5
;
compat_ulong_
t
__unused5
;
};
};
struct
shmid_ds32
{
struct
shmid_ds32
{
...
@@ -1311,8 +1313,8 @@ struct shmid_ds32 {
...
@@ -1311,8 +1313,8 @@ struct shmid_ds32 {
compat_ipc_pid_t
shm_lpid
;
compat_ipc_pid_t
shm_lpid
;
unsigned
short
shm_nattch
;
unsigned
short
shm_nattch
;
unsigned
short
__unused
;
unsigned
short
__unused
;
unsigned
in
t
__unused2
;
compat_uptr_
t
__unused2
;
unsigned
in
t
__unused3
;
compat_uptr_
t
__unused3
;
};
};
struct
shmid64_ds32
{
struct
shmid64_ds32
{
...
@@ -1327,9 +1329,9 @@ struct shmid64_ds32 {
...
@@ -1327,9 +1329,9 @@ struct shmid64_ds32 {
compat_size_t
shm_segsz
;
compat_size_t
shm_segsz
;
compat_pid_t
shm_cpid
;
compat_pid_t
shm_cpid
;
compat_pid_t
shm_lpid
;
compat_pid_t
shm_lpid
;
unsigned
in
t
shm_nattch
;
compat_ulong_
t
shm_nattch
;
unsigned
in
t
__unused5
;
compat_ulong_
t
__unused5
;
unsigned
in
t
__unused6
;
compat_ulong_
t
__unused6
;
};
};
/*
/*
...
@@ -1350,7 +1352,7 @@ static long do_sys32_semctl(int first, int second, int third, void *uptr)
...
@@ -1350,7 +1352,7 @@ static long do_sys32_semctl(int first, int second, int third, void *uptr)
err
=
-
EFAULT
;
err
=
-
EFAULT
;
if
(
get_user
(
pad
,
(
u32
*
)
uptr
))
if
(
get_user
(
pad
,
(
u32
*
)
uptr
))
return
err
;
return
err
;
if
(
third
==
SETVAL
)
if
(
(
third
&
~
IPC_64
)
==
SETVAL
)
fourth
.
val
=
(
int
)
pad
;
fourth
.
val
=
(
int
)
pad
;
else
else
fourth
.
__pad
=
(
void
*
)
A
(
pad
);
fourth
.
__pad
=
(
void
*
)
A
(
pad
);
...
...
arch/ppc64/kernel/syscalls.c
View file @
033fbd9f
/*
/*
* linux/arch/ppc/kernel/sys_ppc.c
* linux/arch/ppc
64
/kernel/sys_ppc.c
*
*
* PowerPC version
* PowerPC version
* Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
* Copyright (C) 1995-1996 Gary Thomas (gdt@linuxppc.org)
...
@@ -40,7 +40,6 @@
...
@@ -40,7 +40,6 @@
#include <asm/uaccess.h>
#include <asm/uaccess.h>
#include <asm/ipc.h>
#include <asm/ipc.h>
#include <asm/semaphore.h>
#include <asm/semaphore.h>
#include <asm/ppcdebug.h>
#include <asm/time.h>
#include <asm/time.h>
extern
unsigned
long
wall_jiffies
;
extern
unsigned
long
wall_jiffies
;
...
@@ -79,6 +78,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
...
@@ -79,6 +78,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
case
SEMCTL
:
{
case
SEMCTL
:
{
union
semun
fourth
;
union
semun
fourth
;
ret
=
-
EINVAL
;
if
(
!
ptr
)
if
(
!
ptr
)
break
;
break
;
if
((
ret
=
get_user
(
fourth
.
__pad
,
(
void
**
)
ptr
)))
if
((
ret
=
get_user
(
fourth
.
__pad
,
(
void
**
)
ptr
)))
...
@@ -94,6 +94,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
...
@@ -94,6 +94,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
case
0
:
{
case
0
:
{
struct
ipc_kludge
tmp
;
struct
ipc_kludge
tmp
;
ret
=
-
EINVAL
;
if
(
!
ptr
)
if
(
!
ptr
)
break
;
break
;
if
((
ret
=
copy_from_user
(
&
tmp
,
if
((
ret
=
copy_from_user
(
&
tmp
,
...
@@ -127,6 +128,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
...
@@ -127,6 +128,7 @@ sys_ipc (uint call, int first, int second, long third, void *ptr, long fifth)
break
;
break
;
}
}
case
1
:
/* iBCS2 emulator entry point */
case
1
:
/* iBCS2 emulator entry point */
ret
=
-
EINVAL
;
if
(
!
segment_eq
(
get_fs
(),
get_ds
()))
if
(
!
segment_eq
(
get_fs
(),
get_ds
()))
break
;
break
;
ret
=
sys_shmat
(
first
,
(
char
*
)
ptr
,
second
,
ret
=
sys_shmat
(
first
,
(
char
*
)
ptr
,
second
,
...
...
include/asm-ppc64/uaccess.h
View file @
033fbd9f
...
@@ -132,6 +132,7 @@ extern long __put_user_bad(void);
...
@@ -132,6 +132,7 @@ extern long __put_user_bad(void);
#define __put_user_size(x,ptr,size,retval,errret) \
#define __put_user_size(x,ptr,size,retval,errret) \
do { \
do { \
might_sleep(); \
retval = 0; \
retval = 0; \
switch (size) { \
switch (size) { \
case 1: __put_user_asm(x,ptr,retval,"stb",errret); break; \
case 1: __put_user_asm(x,ptr,retval,"stb",errret); break; \
...
@@ -185,6 +186,7 @@ extern long __get_user_bad(void);
...
@@ -185,6 +186,7 @@ extern long __get_user_bad(void);
#define __get_user_size(x,ptr,size,retval,errret) \
#define __get_user_size(x,ptr,size,retval,errret) \
do { \
do { \
might_sleep(); \
retval = 0; \
retval = 0; \
switch (size) { \
switch (size) { \
case 1: __get_user_asm(x,ptr,retval,"lbz",errret); break; \
case 1: __get_user_asm(x,ptr,retval,"lbz",errret); break; \
...
@@ -220,6 +222,7 @@ extern unsigned long __copy_tofrom_user(void *to, const void *from,
...
@@ -220,6 +222,7 @@ extern unsigned long __copy_tofrom_user(void *to, const void *from,
static
inline
unsigned
long
static
inline
unsigned
long
__copy_from_user
(
void
*
to
,
const
void
__user
*
from
,
unsigned
long
n
)
__copy_from_user
(
void
*
to
,
const
void
__user
*
from
,
unsigned
long
n
)
{
{
might_sleep
();
if
(
__builtin_constant_p
(
n
))
{
if
(
__builtin_constant_p
(
n
))
{
unsigned
long
ret
;
unsigned
long
ret
;
...
@@ -244,6 +247,7 @@ __copy_from_user(void *to, const void __user *from, unsigned long n)
...
@@ -244,6 +247,7 @@ __copy_from_user(void *to, const void __user *from, unsigned long n)
static
inline
unsigned
long
static
inline
unsigned
long
__copy_to_user
(
void
__user
*
to
,
const
void
*
from
,
unsigned
long
n
)
__copy_to_user
(
void
__user
*
to
,
const
void
*
from
,
unsigned
long
n
)
{
{
might_sleep
();
if
(
__builtin_constant_p
(
n
))
{
if
(
__builtin_constant_p
(
n
))
{
unsigned
long
ret
;
unsigned
long
ret
;
...
@@ -289,6 +293,7 @@ copy_to_user(void *to, const void *from, unsigned long n)
...
@@ -289,6 +293,7 @@ copy_to_user(void *to, const void *from, unsigned long n)
static
inline
unsigned
long
static
inline
unsigned
long
copy_in_user
(
void
*
to
,
const
void
*
from
,
unsigned
long
n
)
copy_in_user
(
void
*
to
,
const
void
*
from
,
unsigned
long
n
)
{
{
might_sleep
();
if
(
likely
(
access_ok
(
VERIFY_READ
,
from
,
n
)
&&
if
(
likely
(
access_ok
(
VERIFY_READ
,
from
,
n
)
&&
access_ok
(
VERIFY_WRITE
,
to
,
n
)))
access_ok
(
VERIFY_WRITE
,
to
,
n
)))
n
=
__copy_tofrom_user
(
to
,
from
,
n
);
n
=
__copy_tofrom_user
(
to
,
from
,
n
);
...
@@ -300,6 +305,7 @@ extern unsigned long __clear_user(void *addr, unsigned long size);
...
@@ -300,6 +305,7 @@ extern unsigned long __clear_user(void *addr, unsigned long size);
static
inline
unsigned
long
static
inline
unsigned
long
clear_user
(
void
*
addr
,
unsigned
long
size
)
clear_user
(
void
*
addr
,
unsigned
long
size
)
{
{
might_sleep
();
if
(
likely
(
access_ok
(
VERIFY_WRITE
,
addr
,
size
)))
if
(
likely
(
access_ok
(
VERIFY_WRITE
,
addr
,
size
)))
size
=
__clear_user
(
addr
,
size
);
size
=
__clear_user
(
addr
,
size
);
return
size
;
return
size
;
...
@@ -310,6 +316,7 @@ extern int __strncpy_from_user(char *dst, const char *src, long count);
...
@@ -310,6 +316,7 @@ extern int __strncpy_from_user(char *dst, const char *src, long count);
static
inline
long
static
inline
long
strncpy_from_user
(
char
*
dst
,
const
char
*
src
,
long
count
)
strncpy_from_user
(
char
*
dst
,
const
char
*
src
,
long
count
)
{
{
might_sleep
();
if
(
likely
(
access_ok
(
VERIFY_READ
,
src
,
1
)))
if
(
likely
(
access_ok
(
VERIFY_READ
,
src
,
1
)))
return
__strncpy_from_user
(
dst
,
src
,
count
);
return
__strncpy_from_user
(
dst
,
src
,
count
);
return
-
EFAULT
;
return
-
EFAULT
;
...
@@ -329,6 +336,7 @@ extern int __strnlen_user(const char *str, long len);
...
@@ -329,6 +336,7 @@ extern int __strnlen_user(const char *str, long len);
*/
*/
static
inline
int
strnlen_user
(
const
char
*
str
,
long
len
)
static
inline
int
strnlen_user
(
const
char
*
str
,
long
len
)
{
{
might_sleep
();
if
(
likely
(
access_ok
(
VERIFY_READ
,
str
,
1
)))
if
(
likely
(
access_ok
(
VERIFY_READ
,
str
,
1
)))
return
__strnlen_user
(
str
,
len
);
return
__strnlen_user
(
str
,
len
);
return
0
;
return
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment