sctp: compress bit-wide flags to a bitfield on sctp_sock
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Fri, 8 Apr 2016 19:41:27 +0000 (16:41 -0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 14 Apr 2016 03:04:44 +0000 (23:04 -0400)
It wastes space and gets worse as we add new flags, so convert bit-wide
flags to a bitfield.

Currently it already saves 4 bytes in sctp_sock, which are left as holes
in it for now. The whole struct needs packing, which should be done in
another patch.

Note that do_auto_asconf cannot be merged, as explained in the comment
before it.

Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sctp/structs.h

index 6df1ce7..1a6a626 100644 (file)
@@ -210,14 +210,14 @@ struct sctp_sock {
        int user_frag;
 
        __u32 autoclose;
-       __u8 nodelay;
-       __u8 disable_fragments;
-       __u8 v4mapped;
-       __u8 frag_interleave;
        __u32 adaptation_ind;
        __u32 pd_point;
-       __u8 recvrcvinfo;
-       __u8 recvnxtinfo;
+       __u16   nodelay:1,
+               disable_fragments:1,
+               v4mapped:1,
+               frag_interleave:1,
+               recvrcvinfo:1,
+               recvnxtinfo:1;
 
        atomic_t pd_mode;
        /* Receive to here while partial delivery is in effect. */