Re: [PATCH v6 08/10] IPC: message queue receive cleanup
From: Ben Hutchings <hidden>
Date: 2012-10-15 20:03:32
Also in:
lkml
On Mon, 2012-10-15 at 20:00 +0400, Stanislav Kinsbursky wrote:
quoted hunk ↗ jump to hunk
This patch moves all message related manipulation into one function msg_fill(). Actually, two functions because of the compat one. Signed-off-by: Stanislav Kinsbursky <redacted> --- include/linux/msg.h | 5 +++-- ipc/compat.c | 36 +++++++++++++++++++----------------- ipc/msg.c | 44 +++++++++++++++++++++++--------------------- 3 files changed, 45 insertions(+), 40 deletions(-)diff --git a/include/linux/msg.h b/include/linux/msg.h index 7a4b9e9..f38edba 100644 --- a/include/linux/msg.h +++ b/include/linux/msg.h@@ -34,7 +34,8 @@ struct msg_queue { /* Helper routines for sys_msgsnd and sys_msgrcv */ extern long do_msgsnd(int msqid, long mtype, void __user *mtext, size_t msgsz, int msgflg); -extern long do_msgrcv(int msqid, long *pmtype, void __user *mtext, - size_t msgsz, long msgtyp, int msgflg); +extern long do_msgrcv(int msqid, void __user *buf, size_t bufsz, long msgtyp, + int msgflg, + long (*msg_fill)(void __user *, struct msg_msg *, size_t )); #endif /* _LINUX_MSG_H */diff --git a/ipc/compat.c b/ipc/compat.c index 84d8efd..b879d50 100644 --- a/ipc/compat.c +++ b/ipc/compat.c
[...]
quoted hunk ↗ jump to hunk
@@ -394,7 +395,8 @@ long compat_sys_msgrcv(int msqid, struct compat_msgbuf __user *msgp, { long err, mtype; - err = do_msgrcv(msqid, &mtype, msgp->mtext, (ssize_t)msgsz, msgtyp, msgflg); + err = do_msgrcv(msqid, &mtype, msgp->mtext, (ssize_t)msgsz, msgtyp, + msgflg, compat_do_msg_fill); if (err < 0) goto out;
[...] That isn't even the right number of arguments now... Ben. -- Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked.