Merge tag 'gpio-v4.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux...
[cascardo/linux.git] / net / sctp / sm_make_chunk.c
index 8c77b87..9e9690b 100644 (file)
@@ -253,7 +253,7 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
        num_types = sp->pf->supported_addrs(sp, types);
 
        chunksize = sizeof(init) + addrs_len;
-       chunksize += WORD_ROUND(SCTP_SAT_LEN(num_types));
+       chunksize += SCTP_PAD4(SCTP_SAT_LEN(num_types));
        chunksize += sizeof(ecap_param);
 
        if (asoc->prsctp_enable)
@@ -283,14 +283,14 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
                /* Add HMACS parameter length if any were defined */
                auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs;
                if (auth_hmacs->length)
-                       chunksize += WORD_ROUND(ntohs(auth_hmacs->length));
+                       chunksize += SCTP_PAD4(ntohs(auth_hmacs->length));
                else
                        auth_hmacs = NULL;
 
                /* Add CHUNKS parameter length */
                auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks;
                if (auth_chunks->length)
-                       chunksize += WORD_ROUND(ntohs(auth_chunks->length));
+                       chunksize += SCTP_PAD4(ntohs(auth_chunks->length));
                else
                        auth_chunks = NULL;
 
@@ -300,8 +300,8 @@ struct sctp_chunk *sctp_make_init(const struct sctp_association *asoc,
 
        /* If we have any extensions to report, account for that */
        if (num_ext)
-               chunksize += WORD_ROUND(sizeof(sctp_supported_ext_param_t) +
-                                       num_ext);
+               chunksize += SCTP_PAD4(sizeof(sctp_supported_ext_param_t) +
+                                      num_ext);
 
        /* RFC 2960 3.3.2 Initiation (INIT) (1)
         *
@@ -443,13 +443,13 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
 
                auth_hmacs = (sctp_paramhdr_t *)asoc->c.auth_hmacs;
                if (auth_hmacs->length)
-                       chunksize += WORD_ROUND(ntohs(auth_hmacs->length));
+                       chunksize += SCTP_PAD4(ntohs(auth_hmacs->length));
                else
                        auth_hmacs = NULL;
 
                auth_chunks = (sctp_paramhdr_t *)asoc->c.auth_chunks;
                if (auth_chunks->length)
-                       chunksize += WORD_ROUND(ntohs(auth_chunks->length));
+                       chunksize += SCTP_PAD4(ntohs(auth_chunks->length));
                else
                        auth_chunks = NULL;
 
@@ -458,8 +458,8 @@ struct sctp_chunk *sctp_make_init_ack(const struct sctp_association *asoc,
        }
 
        if (num_ext)
-               chunksize += WORD_ROUND(sizeof(sctp_supported_ext_param_t) +
-                                       num_ext);
+               chunksize += SCTP_PAD4(sizeof(sctp_supported_ext_param_t) +
+                                      num_ext);
 
        /* Now allocate and fill out the chunk.  */
        retval = sctp_make_control(asoc, SCTP_CID_INIT_ACK, 0, chunksize, gfp);
@@ -706,20 +706,6 @@ nodata:
        return retval;
 }
 
-static void sctp_set_prsctp_policy(struct sctp_chunk *chunk,
-                                  const struct sctp_sndrcvinfo *sinfo)
-{
-       if (!chunk->asoc->prsctp_enable)
-               return;
-
-       if (SCTP_PR_TTL_ENABLED(sinfo->sinfo_flags))
-               chunk->prsctp_param =
-                       jiffies + msecs_to_jiffies(sinfo->sinfo_timetolive);
-       else if (SCTP_PR_RTX_ENABLED(sinfo->sinfo_flags) ||
-                SCTP_PR_PRIO_ENABLED(sinfo->sinfo_flags))
-               chunk->prsctp_param = sinfo->sinfo_timetolive;
-}
-
 /* Make a DATA chunk for the given association from the provided
  * parameters.  However, do not populate the data payload.
  */
@@ -753,7 +739,6 @@ struct sctp_chunk *sctp_make_datafrag_empty(struct sctp_association *asoc,
 
        retval->subh.data_hdr = sctp_addto_chunk(retval, sizeof(dp), &dp);
        memcpy(&retval->sinfo, sinfo, sizeof(struct sctp_sndrcvinfo));
-       sctp_set_prsctp_policy(retval, sinfo);
 
 nodata:
        return retval;
@@ -1390,7 +1375,7 @@ static struct sctp_chunk *_sctp_make_chunk(const struct sctp_association *asoc,
        struct sock *sk;
 
        /* No need to allocate LL here, as this is only a chunk. */
-       skb = alloc_skb(WORD_ROUND(sizeof(sctp_chunkhdr_t) + paylen), gfp);
+       skb = alloc_skb(SCTP_PAD4(sizeof(sctp_chunkhdr_t) + paylen), gfp);
        if (!skb)
                goto nodata;
 
@@ -1482,7 +1467,7 @@ void *sctp_addto_chunk(struct sctp_chunk *chunk, int len, const void *data)
        void *target;
        void *padding;
        int chunklen = ntohs(chunk->chunk_hdr->length);
-       int padlen = WORD_ROUND(chunklen) - chunklen;
+       int padlen = SCTP_PAD4(chunklen) - chunklen;
 
        padding = skb_put(chunk->skb, padlen);
        target = skb_put(chunk->skb, len);
@@ -1900,7 +1885,7 @@ static int sctp_process_missing_param(const struct sctp_association *asoc,
        struct __sctp_missing report;
        __u16 len;
 
-       len = WORD_ROUND(sizeof(report));
+       len = SCTP_PAD4(sizeof(report));
 
        /* Make an ERROR chunk, preparing enough room for
         * returning multiple unknown parameters.
@@ -2098,9 +2083,9 @@ static sctp_ierror_t sctp_process_unk_param(const struct sctp_association *asoc,
 
                if (*errp) {
                        if (!sctp_init_cause_fixed(*errp, SCTP_ERROR_UNKNOWN_PARAM,
-                                       WORD_ROUND(ntohs(param.p->length))))
+                                       SCTP_PAD4(ntohs(param.p->length))))
                                sctp_addto_chunk_fixed(*errp,
-                                               WORD_ROUND(ntohs(param.p->length)),
+                                               SCTP_PAD4(ntohs(param.p->length)),
                                                param.v);
                } else {
                        /* If there is no memory for generating the ERROR