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 > > >