On 3/21/21 6:43 AM, menglong8.d...@gmail.com wrote:
> From: Menglong Dong <dong.mengl...@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.mengl...@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
>  
>  
> 

Reply via email to