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 cccdcfd..aa34264 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 d1e3830..706f5bc 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;