git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
af_key: fix netns ops ordering on module load/unload
[safe/jmp/linux-2.6]
/
ipc
/
msg.c
diff --git
a/ipc/msg.c
b/ipc/msg.c
index
4a858f9
..
af42ef8
100644
(file)
--- a/
ipc/msg.c
+++ b/
ipc/msg.c
@@
-98,20
+98,15
@@
void recompute_msgmni(struct ipc_namespace *ns)
if (allowed < MSGMNI) {
ns->msg_ctlmni = MSGMNI;
if (allowed < MSGMNI) {
ns->msg_ctlmni = MSGMNI;
-
goto out_callback
;
+
return
;
}
if (allowed > IPCMNI / nb_ns) {
ns->msg_ctlmni = IPCMNI / nb_ns;
}
if (allowed > IPCMNI / nb_ns) {
ns->msg_ctlmni = IPCMNI / nb_ns;
-
goto out_callback
;
+
return
;
}
ns->msg_ctlmni = allowed;
}
ns->msg_ctlmni = allowed;
-
-out_callback:
-
- printk(KERN_INFO "msgmni has been set to %d for ipc namespace %p\n",
- ns->msg_ctlmni, ns);
}
void msg_init_ns(struct ipc_namespace *ns)
}
void msg_init_ns(struct ipc_namespace *ns)
@@
-130,12
+125,17
@@
void msg_init_ns(struct ipc_namespace *ns)
void msg_exit_ns(struct ipc_namespace *ns)
{
free_ipcs(ns, &msg_ids(ns), freeque);
void msg_exit_ns(struct ipc_namespace *ns)
{
free_ipcs(ns, &msg_ids(ns), freeque);
+ idr_destroy(&ns->ids[IPC_MSG_IDS].ipcs_idr);
}
#endif
void __init msg_init(void)
{
msg_init_ns(&init_ipc_ns);
}
#endif
void __init msg_init(void)
{
msg_init_ns(&init_ipc_ns);
+
+ printk(KERN_INFO "msgmni has been set to %d\n",
+ init_ipc_ns.msg_ctlmni);
+
ipc_init_proc_interface("sysvipc/msg",
" key msqid perms cbytes qnum lspid lrpid uid gid cuid cgid stime rtime ctime\n",
IPC_MSG_IDS, sysvipc_msg_proc_show);
ipc_init_proc_interface("sysvipc/msg",
" key msqid perms cbytes qnum lspid lrpid uid gid cuid cgid stime rtime ctime\n",
IPC_MSG_IDS, sysvipc_msg_proc_show);
@@
-310,7
+310,7
@@
static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg)
return security_msg_queue_associate(msq, msgflg);
}
return security_msg_queue_associate(msq, msgflg);
}
-
asmlinkage long sys_msgget(key_t key, int
msgflg)
+
SYSCALL_DEFINE2(msgget, key_t, key, int,
msgflg)
{
struct ipc_namespace *ns;
struct ipc_ops msg_ops;
{
struct ipc_namespace *ns;
struct ipc_ops msg_ops;
@@
-346,19
+346,19
@@
copy_msqid_to_user(void __user *buf, struct msqid64_ds *in, int version)
out.msg_rtime = in->msg_rtime;
out.msg_ctime = in->msg_ctime;
out.msg_rtime = in->msg_rtime;
out.msg_ctime = in->msg_ctime;
- if (in->msg_cbytes > USHRT_MAX)
- out.msg_cbytes = USHRT_MAX;
+ if (in->msg_cbytes > USH
O
RT_MAX)
+ out.msg_cbytes = USH
O
RT_MAX;
else
out.msg_cbytes = in->msg_cbytes;
out.msg_lcbytes = in->msg_cbytes;
else
out.msg_cbytes = in->msg_cbytes;
out.msg_lcbytes = in->msg_cbytes;
- if (in->msg_qnum > USHRT_MAX)
- out.msg_qnum = USHRT_MAX;
+ if (in->msg_qnum > USH
O
RT_MAX)
+ out.msg_qnum = USH
O
RT_MAX;
else
out.msg_qnum = in->msg_qnum;
else
out.msg_qnum = in->msg_qnum;
- if (in->msg_qbytes > USHRT_MAX)
- out.msg_qbytes = USHRT_MAX;
+ if (in->msg_qbytes > USH
O
RT_MAX)
+ out.msg_qbytes = USH
O
RT_MAX;
else
out.msg_qbytes = in->msg_qbytes;
out.msg_lqbytes = in->msg_qbytes;
else
out.msg_qbytes = in->msg_qbytes;
out.msg_lqbytes = in->msg_qbytes;
@@
-413,7
+413,7
@@
static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd,
struct msqid_ds __user *buf, int version)
{
struct kern_ipc_perm *ipcp;
struct msqid_ds __user *buf, int version)
{
struct kern_ipc_perm *ipcp;
- struct msqid64_ds
msqid64
;
+ struct msqid64_ds
uninitialized_var(msqid64)
;
struct msg_queue *msq;
int err;
struct msg_queue *msq;
int err;
@@
-467,7
+467,7
@@
out_up:
return err;
}
return err;
}
-
asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *
buf)
+
SYSCALL_DEFINE3(msgctl, int, msqid, int, cmd, struct msqid_ds __user *,
buf)
{
struct msg_queue *msq;
int err, version;
{
struct msg_queue *msq;
int err, version;
@@
-724,8
+724,8
@@
out_free:
return err;
}
return err;
}
-asmlinkage long
-
sys_msgsnd(int msqid, struct msgbuf __user *msgp, size_t msgsz, int
msgflg)
+SYSCALL_DEFINE4(msgsnd, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz,
+
int,
msgflg)
{
long mtype;
{
long mtype;
@@
-905,8
+905,8
@@
out_unlock:
return msgsz;
}
return msgsz;
}
-
asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp, size_t
msgsz,
-
long msgtyp, int
msgflg)
+
SYSCALL_DEFINE5(msgrcv, int, msqid, struct msgbuf __user *, msgp, size_t,
msgsz,
+
long, msgtyp, int,
msgflg)
{
long err, mtype;
{
long err, mtype;