sctp: reorder sctp_ulpevent and shrink msg_flags
authorMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Wed, 13 Jul 2016 18:08:56 +0000 (15:08 -0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 14 Jul 2016 01:10:14 +0000 (18:10 -0700)
The next patch needs 8 bytes in there. sctp_ulpevent has a hole due to
bad alignment; msg_flags is using 4 bytes while it actually uses only 2, so
we shrink it, and iif member (4 bytes) which can be easily fetched from
another place once the next patch is there, so we remove it and thus
creating space for 8 bytes.

Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/sctp/ulpevent.h
net/sctp/ulpevent.c

index cccdcfd149736b315554d64c2a556e0ad6496fc8..aa342645dbce446186d55151c3f507cf0e165b44 100644 (file)
  */
 struct sctp_ulpevent {
        struct sctp_association *asoc;
-       __u16 stream;
-       __u16 ssn;
-       __u16 flags;
+       unsigned int rmem_len;
        __u32 ppid;
        __u32 tsn;
        __u32 cumtsn;
-       int msg_flags;
        int iif;
-       unsigned int rmem_len;
+       __u16 stream;
+       __u16 ssn;
+       __u16 flags;
+       __u16 msg_flags;
 };
 
 /* Retrieve the skb this event sits inside of. */
index d1e38308f6159c0e4da7db966c16afc6a956b554..706f5bc9f0c3083ab455ec78b963cd609a3a95b5 100644 (file)
@@ -51,7 +51,7 @@ static void sctp_ulpevent_release_frag_data(struct sctp_ulpevent *event);
 
 /* Initialize an ULP event from an given skb.  */
 static void sctp_ulpevent_init(struct sctp_ulpevent *event,
-                              int msg_flags,
+                              __u16 msg_flags,
                               unsigned int len)
 {
        memset(event, 0, sizeof(struct sctp_ulpevent));
@@ -60,7 +60,7 @@ static void sctp_ulpevent_init(struct sctp_ulpevent *event,
 }
 
 /* Create a new sctp_ulpevent.  */
-static struct sctp_ulpevent *sctp_ulpevent_new(int size, int msg_flags,
+static struct sctp_ulpevent *sctp_ulpevent_new(int size, __u16 msg_flags,
                                               gfp_t gfp)
 {
        struct sctp_ulpevent *event;