[Devel] Re: [PATCH v6 08/10] IPC: message queue receive cleanup

Stanislav Kinsbursky skinsbursky at parallels.com
Tue Oct 16 00:56:50 PDT 2012


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 <skinsbursky at parallels.com>
>> ---
>>   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




More information about the Devel mailing list