int len, __u8 flags, gfp_t gfp);
 struct sctp_chunk *sctp_make_ecne(const struct sctp_association *asoc,
                                  const __u32 lowest_tsn);
-struct sctp_chunk *sctp_make_sack(const struct sctp_association *asoc);
+struct sctp_chunk *sctp_make_sack(struct sctp_association *asoc);
 struct sctp_chunk *sctp_make_shutdown(const struct sctp_association *asoc,
                                      const struct sctp_chunk *chunk);
 struct sctp_chunk *sctp_make_shutdown_ack(const struct sctp_association *asoc,
 
  * association.  This reports on which TSN's we've seen to date,
  * including duplicates and gaps.
  */
-struct sctp_chunk *sctp_make_sack(const struct sctp_association *asoc)
+struct sctp_chunk *sctp_make_sack(struct sctp_association *asoc)
 {
        struct sctp_tsnmap *map = (struct sctp_tsnmap *)&asoc->peer.tsn_map;
-       struct sctp_association *aptr = (struct sctp_association *)asoc;
        struct sctp_gap_ack_block gabs[SCTP_MAX_GABS];
        __u16 num_gabs, num_dup_tsns;
        struct sctp_transport *trans;
 
        /* Add the duplicate TSN information.  */
        if (num_dup_tsns) {
-               aptr->stats.idupchunks += num_dup_tsns;
+               asoc->stats.idupchunks += num_dup_tsns;
                sctp_addto_chunk(retval, sizeof(__u32) * num_dup_tsns,
                                 sctp_tsnmap_get_dups(map));
        }
         * association so no transport will match after a wrap event like this,
         * Until the next sack
         */
-       if (++aptr->peer.sack_generation == 0) {
+       if (++asoc->peer.sack_generation == 0) {
                list_for_each_entry(trans, &asoc->peer.transport_addr_list,
                                    transports)
                        trans->sack_generation = 0;
-               aptr->peer.sack_generation = 1;
+               asoc->peer.sack_generation = 1;
        }
 nodata:
        return retval;