[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7b0e1c1e-b45a-4ae3-6e4f-aa7a3dccafdb@roeck-us.net>
Date: Sun, 21 Mar 2021 09:15:43 -0700
From: Guenter Roeck <linux@...ck-us.net>
To: menglong8.dong@...il.com, herbert@...dor.apana.org.au,
andy.shevchenko@...il.com, kuba@...nel.org, David.Laight@...lab.com
Cc: davem@...emloft.net, dong.menglong@....com.cn,
viro@...iv.linux.org.uk, axboe@...nel.dk,
linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [PATCH v2 net-next 1/2] net: socket: use BIT() for MSG_*
On 3/21/21 6:43 AM, menglong8.dong@...il.com wrote:
> From: Menglong Dong <dong.menglong@....com.cn>
>
> The bit mask for MSG_* seems a little confused here. Replace it
> with BIT() to make it clear to understand.
>
> Signed-off-by: Menglong Dong <dong.menglong@....com.cn>
With this patch sent as patch 1/2, any code trying to bisect
a compat related network problem will fail at this commit.
Guenter
> ---
> include/linux/socket.h | 71 ++++++++++++++++++++++--------------------
> 1 file changed, 37 insertions(+), 34 deletions(-)
>
> diff --git a/include/linux/socket.h b/include/linux/socket.h
> index 385894b4a8bb..d5ebfe30d96b 100644
> --- a/include/linux/socket.h
> +++ b/include/linux/socket.h
> @@ -283,42 +283,45 @@ struct ucred {
> Added those for 1003.1g not all are supported yet
> */
>
> -#define MSG_OOB 1
> -#define MSG_PEEK 2
> -#define MSG_DONTROUTE 4
> -#define MSG_TRYHARD 4 /* Synonym for MSG_DONTROUTE for DECnet */
> -#define MSG_CTRUNC 8
> -#define MSG_PROBE 0x10 /* Do not send. Only probe path f.e. for MTU */
> -#define MSG_TRUNC 0x20
> -#define MSG_DONTWAIT 0x40 /* Nonblocking io */
> -#define MSG_EOR 0x80 /* End of record */
> -#define MSG_WAITALL 0x100 /* Wait for a full request */
> -#define MSG_FIN 0x200
> -#define MSG_SYN 0x400
> -#define MSG_CONFIRM 0x800 /* Confirm path validity */
> -#define MSG_RST 0x1000
> -#define MSG_ERRQUEUE 0x2000 /* Fetch message from error queue */
> -#define MSG_NOSIGNAL 0x4000 /* Do not generate SIGPIPE */
> -#define MSG_MORE 0x8000 /* Sender will send more */
> -#define MSG_WAITFORONE 0x10000 /* recvmmsg(): block until 1+ packets avail */
> -#define MSG_SENDPAGE_NOPOLICY 0x10000 /* sendpage() internal : do no apply policy */
> -#define MSG_SENDPAGE_NOTLAST 0x20000 /* sendpage() internal : not the last page */
> -#define MSG_BATCH 0x40000 /* sendmmsg(): more messages coming */
> -#define MSG_EOF MSG_FIN
> -#define MSG_NO_SHARED_FRAGS 0x80000 /* sendpage() internal : page frags are not shared */
> -#define MSG_SENDPAGE_DECRYPTED 0x100000 /* sendpage() internal : page may carry
> - * plain text and require encryption
> - */
> -
> -#define MSG_ZEROCOPY 0x4000000 /* Use user data in kernel path */
> -#define MSG_FASTOPEN 0x20000000 /* Send data in TCP SYN */
> -#define MSG_CMSG_CLOEXEC 0x40000000 /* Set close_on_exec for file
> - descriptor received through
> - SCM_RIGHTS */
> +#define MSG_OOB BIT(0)
> +#define MSG_PEEK BIT(1)
> +#define MSG_DONTROUTE BIT(2)
> +#define MSG_TRYHARD BIT(2) /* Synonym for MSG_DONTROUTE for DECnet */
> +#define MSG_CTRUNC BIT(3)
> +#define MSG_PROBE BIT(4) /* Do not send. Only probe path f.e. for MTU */
> +#define MSG_TRUNC BIT(5)
> +#define MSG_DONTWAIT BIT(6) /* Nonblocking io */
> +#define MSG_EOR BIT(7) /* End of record */
> +#define MSG_WAITALL BIT(8) /* Wait for a full request */
> +#define MSG_FIN BIT(9)
> +#define MSG_SYN BIT(10)
> +#define MSG_CONFIRM BIT(11) /* Confirm path validity */
> +#define MSG_RST BIT(12)
> +#define MSG_ERRQUEUE BIT(13) /* Fetch message from error queue */
> +#define MSG_NOSIGNAL BIT(14) /* Do not generate SIGPIPE */
> +#define MSG_MORE BIT(15) /* Sender will send more */
> +#define MSG_WAITFORONE BIT(16) /* recvmmsg(): block until 1+ packets avail */
> +#define MSG_SENDPAGE_NOPOLICY BIT(16) /* sendpage() internal : do no apply policy */
> +#define MSG_SENDPAGE_NOTLAST BIT(17) /* sendpage() internal : not the last page */
> +#define MSG_BATCH BIT(18) /* sendmmsg(): more messages coming */
> +#define MSG_EOF MSG_FIN
> +#define MSG_NO_SHARED_FRAGS BIT(19) /* sendpage() internal : page frags
> + * are not shared
> + */
> +#define MSG_SENDPAGE_DECRYPTED BIT(20) /* sendpage() internal : page may carry
> + * plain text and require encryption
> + */
> +
> +#define MSG_ZEROCOPY BIT(26) /* Use user data in kernel path */
> +#define MSG_FASTOPEN BIT(29) /* Send data in TCP SYN */
> +#define MSG_CMSG_CLOEXEC BIT(30) /* Set close_on_exec for file
> + * descriptor received through
> + * SCM_RIGHTS
> + */
> #if defined(CONFIG_COMPAT)
> -#define MSG_CMSG_COMPAT 0x80000000 /* This message needs 32 bit fixups */
> +#define MSG_CMSG_COMPAT BIT(31) /* This message needs 32 bit fixups */
> #else
> -#define MSG_CMSG_COMPAT 0 /* We never have 32 bit fixups */
> +#define MSG_CMSG_COMPAT 0 /* We never have 32 bit fixups */
> #endif
>
>
>
Powered by blists - more mailing lists