lkml.org 
[lkml]   [2021]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2 net-next 1/2] net: socket: use BIT() for MSG_*
From
Date
On 3/21/21 6:43 AM, menglong8.dong@gmail.com wrote:
> From: Menglong Dong <dong.menglong@zte.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@zte.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
>
>
>

\
 
 \ /
  Last update: 2021-03-21 17:17    [W:0.041 / U:0.072 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site