16.10.2012 00:03, Ben Hutchings пишет:
On Mon, 2012-10-15 at 20:00 +0400, Stanislav Kinsbursky wrote:
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 <[email protected]>
---
  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
[...]
@@ -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...


Thanks, will fix.

Ben.



--
Best regards,
Stanislav Kinsbursky

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to