#include <net/sctp/sm.h>
 #include <net/sctp/structs.h>
 
-static struct sctp_packet *sctp_abort_pkt_new(struct net *net,
-                                 const struct sctp_endpoint *ep,
-                                 const struct sctp_association *asoc,
-                                 struct sctp_chunk *chunk,
-                                 const void *payload,
-                                 size_t paylen);
+static struct sctp_packet *sctp_abort_pkt_new(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       struct sctp_chunk *chunk,
+                                       const void *payload, size_t paylen);
 static int sctp_eat_data(const struct sctp_association *asoc,
                         struct sctp_chunk *chunk,
                         struct sctp_cmd_seq *commands);
-static struct sctp_packet *sctp_ootb_pkt_new(struct net *net,
-                                            const struct sctp_association *asoc,
-                                            const struct sctp_chunk *chunk);
+static struct sctp_packet *sctp_ootb_pkt_new(
+                                       struct net *net,
+                                       const struct sctp_association *asoc,
+                                       const struct sctp_chunk *chunk);
 static void sctp_send_stale_cookie_err(struct net *net,
                                       const struct sctp_endpoint *ep,
                                       const struct sctp_association *asoc,
                                       const struct sctp_chunk *chunk,
                                       struct sctp_cmd_seq *commands,
                                       struct sctp_chunk *err_chunk);
-static sctp_disposition_t sctp_sf_do_5_2_6_stale(struct net *net,
-                                                const struct sctp_endpoint *ep,
-                                                const struct sctp_association *asoc,
-                                                const union sctp_subtype type,
-                                                void *arg,
-                                                struct sctp_cmd_seq *commands);
-static sctp_disposition_t sctp_sf_shut_8_4_5(struct net *net,
-                                            const struct sctp_endpoint *ep,
-                                            const struct sctp_association *asoc,
-                                            const union sctp_subtype type,
-                                            void *arg,
-                                            struct sctp_cmd_seq *commands);
-static sctp_disposition_t sctp_sf_tabort_8_4_8(struct net *net,
+static enum sctp_disposition sctp_sf_do_5_2_6_stale(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands);
+static enum sctp_disposition sctp_sf_shut_8_4_5(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands);
+static enum sctp_disposition sctp_sf_tabort_8_4_8(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
                                        struct sctp_cmd_seq *commands);
 static struct sctp_sackhdr *sctp_sm_pull_sack(struct sctp_chunk *chunk);
 
-static sctp_disposition_t sctp_stop_t1_and_abort(struct net *net,
-                                          struct sctp_cmd_seq *commands,
-                                          __be16 error, int sk_err,
-                                          const struct sctp_association *asoc,
-                                          struct sctp_transport *transport);
+static enum sctp_disposition sctp_stop_t1_and_abort(
+                                       struct net *net,
+                                       struct sctp_cmd_seq *commands,
+                                       __be16 error, int sk_err,
+                                       const struct sctp_association *asoc,
+                                       struct sctp_transport *transport);
 
-static sctp_disposition_t sctp_sf_abort_violation(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands,
-                                    const __u8 *payload,
-                                    const size_t paylen);
+static enum sctp_disposition sctp_sf_abort_violation(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands,
+                                       const __u8 *payload,
+                                       const size_t paylen);
 
-static sctp_disposition_t sctp_sf_violation_chunklen(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands);
+static enum sctp_disposition sctp_sf_violation_chunklen(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands);
 
-static sctp_disposition_t sctp_sf_violation_paramlen(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg, void *ext,
-                                    struct sctp_cmd_seq *commands);
+static enum sctp_disposition sctp_sf_violation_paramlen(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg, void *ext,
+                                       struct sctp_cmd_seq *commands);
 
-static sctp_disposition_t sctp_sf_violation_ctsn(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands);
+static enum sctp_disposition sctp_sf_violation_ctsn(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands);
 
-static sctp_disposition_t sctp_sf_violation_chunk(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands);
+static enum sctp_disposition sctp_sf_violation_chunk(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands);
 
 static enum sctp_ierror sctp_sf_authenticate(
-                               struct net *net,
-                               const struct sctp_endpoint *ep,
-                               const struct sctp_association *asoc,
-                               const union sctp_subtype type,
-                               struct sctp_chunk *chunk);
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       struct sctp_chunk *chunk);
 
-static sctp_disposition_t __sctp_sf_do_9_1_abort(struct net *net,
+static enum sctp_disposition __sctp_sf_do_9_1_abort(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
  *                false = Invalid length
  *
  */
-static inline bool
-sctp_chunk_length_valid(struct sctp_chunk *chunk, __u16 required_length)
+static inline bool sctp_chunk_length_valid(struct sctp_chunk *chunk,
+                                          __u16 required_length)
 {
        __u16 chunk_length = ntohs(chunk->chunk_hdr->length);
 
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_4_C(struct net *net,
-                                 const struct sctp_endpoint *ep,
-                                 const struct sctp_association *asoc,
-                                 const union sctp_subtype type,
-                                 void *arg,
-                                 struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_4_C(struct net *net,
+                                    const struct sctp_endpoint *ep,
+                                    const struct sctp_association *asoc,
+                                    const union sctp_subtype type,
+                                    void *arg, struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_ulpevent *ev;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_5_1B_init(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_5_1B_init(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg, *repl, *err_chunk;
        struct sctp_unrecognized_param *unk_param;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_5_1C_ack(struct net *net,
-                                      const struct sctp_endpoint *ep,
-                                      const struct sctp_association *asoc,
-                                      const union sctp_subtype type,
-                                      void *arg,
-                                      struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_5_1C_ack(struct net *net,
+                                         const struct sctp_endpoint *ep,
+                                         const struct sctp_association *asoc,
+                                         const union sctp_subtype type,
+                                         void *arg,
+                                         struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *chunk = arg;
        struct sctp_init_chunk *initchunk;
+       struct sctp_chunk *chunk = arg;
        struct sctp_chunk *err_chunk;
        struct sctp_packet *packet;
 
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_5_1D_ce(struct net *net,
-                                     const struct sctp_endpoint *ep,
-                                     const struct sctp_association *asoc,
-                                     const union sctp_subtype type, void *arg,
-                                     struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_5_1D_ce(struct net *net,
+                                        const struct sctp_endpoint *ep,
+                                        const struct sctp_association *asoc,
+                                        const union sctp_subtype type,
+                                        void *arg,
+                                        struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *chunk = arg;
+       struct sctp_ulpevent *ev, *ai_ev = NULL;
        struct sctp_association *new_asoc;
        struct sctp_init_chunk *peer_init;
-       struct sctp_chunk *repl;
-       struct sctp_ulpevent *ev, *ai_ev = NULL;
-       int error = 0;
+       struct sctp_chunk *chunk = arg;
        struct sctp_chunk *err_chk_p;
+       struct sctp_chunk *repl;
        struct sock *sk;
+       int error = 0;
 
        /* If the packet is an OOTB packet which is temporarily on the
         * control endpoint, respond with an ABORT.
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_5_1E_ca(struct net *net,
-                                     const struct sctp_endpoint *ep,
-                                     const struct sctp_association *asoc,
-                                     const union sctp_subtype type, void *arg,
-                                     struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_5_1E_ca(struct net *net,
+                                        const struct sctp_endpoint *ep,
+                                        const struct sctp_association *asoc,
+                                        const union sctp_subtype type,
+                                        void *arg,
+                                        struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_ulpevent *ev;
 }
 
 /* Generate and sendout a heartbeat packet.  */
-static sctp_disposition_t sctp_sf_heartbeat(const struct sctp_endpoint *ep,
-                                           const struct sctp_association *asoc,
-                                           const union sctp_subtype type,
-                                           void *arg,
-                                           struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_heartbeat(
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_transport *transport = (struct sctp_transport *) arg;
        struct sctp_chunk *reply;
 }
 
 /* Generate a HEARTBEAT packet on the given transport.  */
-sctp_disposition_t sctp_sf_sendbeat_8_3(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_sendbeat_8_3(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        struct sctp_transport *transport = (struct sctp_transport *) arg;
 
 }
 
 /* resend asoc strreset_chunk.  */
-sctp_disposition_t sctp_sf_send_reconf(struct net *net,
-                                      const struct sctp_endpoint *ep,
-                                      const struct sctp_association *asoc,
-                                      const union sctp_subtype type, void *arg,
-                                      struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_send_reconf(struct net *net,
+                                         const struct sctp_endpoint *ep,
+                                         const struct sctp_association *asoc,
+                                         const union sctp_subtype type,
+                                         void *arg,
+                                         struct sctp_cmd_seq *commands)
 {
        struct sctp_transport *transport = arg;
 
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_beat_8_3(struct net *net,
-                                   const struct sctp_endpoint *ep,
-                                   const struct sctp_association *asoc,
-                                   const union sctp_subtype type,
-                                   void *arg,
-                                   struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_beat_8_3(struct net *net,
+                                      const struct sctp_endpoint *ep,
+                                      const struct sctp_association *asoc,
+                                      const union sctp_subtype type,
+                                      void *arg, struct sctp_cmd_seq *commands)
 {
        struct sctp_paramhdr *param_hdr;
        struct sctp_chunk *chunk = arg;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_backbeat_8_3(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_backbeat_8_3(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        struct sctp_sender_hb_info *hbinfo;
        struct sctp_chunk *chunk = arg;
                                      struct sctp_chunk *init,
                                      struct sctp_cmd_seq *commands)
 {
-       int len;
-       struct sctp_packet *pkt;
+       struct sctp_af *af = sctp_get_af_specific(ssa->v4.sin_family);
        union sctp_addr_param *addrparm;
        struct sctp_errhdr *errhdr;
-       struct sctp_endpoint *ep;
        char buffer[sizeof(*errhdr) + sizeof(*addrparm)];
-       struct sctp_af *af = sctp_get_af_specific(ssa->v4.sin_family);
+       struct sctp_endpoint *ep;
+       struct sctp_packet *pkt;
+       int len;
 
        /* Build the error on the stack.   We are way to malloc crazy
         * throughout the code today.
 /* Common helper routine for both duplicate and simulataneous INIT
  * chunk handling.
  */
-static sctp_disposition_t sctp_sf_do_unexpected_init(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg, struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_do_unexpected_init(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg, *repl, *err_chunk;
        struct sctp_unrecognized_param *unk_param;
        struct sctp_association *new_asoc;
+       enum sctp_disposition retval;
        struct sctp_packet *packet;
-       sctp_disposition_t retval;
        int len;
 
        /* 6.10 Bundling
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_5_2_1_siminit(struct net *net,
-                                   const struct sctp_endpoint *ep,
-                                   const struct sctp_association *asoc,
-                                   const union sctp_subtype type,
-                                   void *arg,
-                                   struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_5_2_1_siminit(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* Call helper to do the real work for both simulataneous and
         * duplicate INIT chunk handling.
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_5_2_2_dupinit(struct net *net,
+enum sctp_disposition sctp_sf_do_5_2_2_dupinit(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
  * An unexpected INIT ACK usually indicates the processing of an old or
  * duplicated INIT chunk.
 */
-sctp_disposition_t sctp_sf_do_5_2_3_initack(struct net *net,
-                                           const struct sctp_endpoint *ep,
-                                           const struct sctp_association *asoc,
-                                           const union sctp_subtype type,
-                                           void *arg,
-                                           struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_5_2_3_initack(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* Per the above section, we'll discard the chunk if we have an
         * endpoint.  If this is an OOTB INIT-ACK, treat it as such.
  * Section 5.2.4
  *  A)  In this case, the peer may have restarted.
  */
-static sctp_disposition_t sctp_sf_do_dupcook_a(struct net *net,
+static enum sctp_disposition sctp_sf_do_dupcook_a(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        struct sctp_chunk *chunk,
                                        struct sctp_association *new_asoc)
 {
        struct sctp_init_chunk *peer_init;
+       enum sctp_disposition disposition;
        struct sctp_ulpevent *ev;
        struct sctp_chunk *repl;
        struct sctp_chunk *err;
-       sctp_disposition_t disposition;
 
        /* new_asoc is a brand-new association, so these are not yet
         * side effects--it is safe to run them here.
  *      after responding to the local endpoint's INIT
  */
 /* This case represents an initialization collision.  */
-static sctp_disposition_t sctp_sf_do_dupcook_b(struct net *net,
+static enum sctp_disposition sctp_sf_do_dupcook_b(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        struct sctp_chunk *chunk,
  *     but a new tag of its own.
  */
 /* This case represents an initialization collision.  */
-static sctp_disposition_t sctp_sf_do_dupcook_c(struct net *net,
+static enum sctp_disposition sctp_sf_do_dupcook_c(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        struct sctp_chunk *chunk,
  *    enter the ESTABLISHED state, if it has not already done so.
  */
 /* This case represents an initialization collision.  */
-static sctp_disposition_t sctp_sf_do_dupcook_d(struct net *net,
+static enum sctp_disposition sctp_sf_do_dupcook_d(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        struct sctp_chunk *chunk,
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_5_2_4_dupcook(struct net *net,
+enum sctp_disposition sctp_sf_do_5_2_4_dupcook(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
                                        void *arg,
                                        struct sctp_cmd_seq *commands)
 {
-       sctp_disposition_t retval;
-       struct sctp_chunk *chunk = arg;
        struct sctp_association *new_asoc;
+       struct sctp_chunk *chunk = arg;
+       enum sctp_disposition retval;
+       struct sctp_chunk *err_chk_p;
        int error = 0;
        char action;
-       struct sctp_chunk *err_chk_p;
 
        /* Make sure that the chunk has a valid length from the protocol
         * perspective.  In this case check to make sure we have at least
  *
  * See sctp_sf_do_9_1_abort().
  */
-sctp_disposition_t sctp_sf_shutdown_pending_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_shutdown_pending_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
 
  *
  * See sctp_sf_do_9_1_abort().
  */
-sctp_disposition_t sctp_sf_shutdown_sent_abort(struct net *net,
+enum sctp_disposition sctp_sf_shutdown_sent_abort(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
  *
  * See sctp_sf_do_9_1_abort().
  */
-sctp_disposition_t sctp_sf_shutdown_ack_sent_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_shutdown_ack_sent_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* The same T2 timer, so we should be able to use
         * common function with the SHUTDOWN-SENT state.
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_cookie_echoed_err(struct net *net,
+enum sctp_disposition sctp_sf_cookie_echoed_err(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
  *
  * The return value is the disposition of the chunk.
  */
-static sctp_disposition_t sctp_sf_do_5_2_6_stale(struct net *net,
-                                                const struct sctp_endpoint *ep,
-                                                const struct sctp_association *asoc,
-                                                const union sctp_subtype type,
-                                                void *arg,
-                                                struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_do_5_2_6_stale(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        int attempts = asoc->init_err_counter + 1;
        struct sctp_chunk *chunk = arg, *reply;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_9_1_abort(struct net *net,
+enum sctp_disposition sctp_sf_do_9_1_abort(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
        return __sctp_sf_do_9_1_abort(net, ep, asoc, type, arg, commands);
 }
 
-static sctp_disposition_t __sctp_sf_do_9_1_abort(struct net *net,
+static enum sctp_disposition __sctp_sf_do_9_1_abort(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
                                        void *arg,
                                        struct sctp_cmd_seq *commands)
 {
+       __be16 error = SCTP_ERROR_NO_ERROR;
        struct sctp_chunk *chunk = arg;
        unsigned int len;
-       __be16 error = SCTP_ERROR_NO_ERROR;
 
        /* See if we have an error cause code in the chunk.  */
        len = ntohs(chunk->chunk_hdr->length);
  *
  * See sctp_sf_do_9_1_abort() above.
  */
-sctp_disposition_t sctp_sf_cookie_wait_abort(struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_cookie_wait_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
+       __be16 error = SCTP_ERROR_NO_ERROR;
        struct sctp_chunk *chunk = arg;
        unsigned int len;
-       __be16 error = SCTP_ERROR_NO_ERROR;
 
        if (!sctp_vtag_verify_either(chunk, asoc))
                return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands);
 /*
  * Process an incoming ICMP as an ABORT.  (COOKIE-WAIT state)
  */
-sctp_disposition_t sctp_sf_cookie_wait_icmp_abort(struct net *net,
+enum sctp_disposition sctp_sf_cookie_wait_icmp_abort(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
 /*
  * Process an ABORT.  (COOKIE-ECHOED state)
  */
-sctp_disposition_t sctp_sf_cookie_echoed_abort(struct net *net,
-                                              const struct sctp_endpoint *ep,
-                                              const struct sctp_association *asoc,
-                                              const union sctp_subtype type,
-                                              void *arg,
-                                              struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_cookie_echoed_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* There is a single T1 timer, so we should be able to use
         * common function with the COOKIE-WAIT state.
  *
  * This is common code called by several sctp_sf_*_abort() functions above.
  */
-static sctp_disposition_t sctp_stop_t1_and_abort(struct net *net,
-                                          struct sctp_cmd_seq *commands,
-                                          __be16 error, int sk_err,
-                                          const struct sctp_association *asoc,
-                                          struct sctp_transport *transport)
+static enum sctp_disposition sctp_stop_t1_and_abort(
+                                       struct net *net,
+                                       struct sctp_cmd_seq *commands,
+                                       __be16 error, int sk_err,
+                                       const struct sctp_association *asoc,
+                                       struct sctp_transport *transport)
 {
        pr_debug("%s: ABORT received (INIT)\n", __func__);
 
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_9_2_shutdown(struct net *net,
-                                          const struct sctp_endpoint *ep,
-                                          const struct sctp_association *asoc,
-                                          const union sctp_subtype type,
-                                          void *arg,
-                                          struct sctp_cmd_seq *commands)
-{
+enum sctp_disposition sctp_sf_do_9_2_shutdown(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
+{
+       enum sctp_disposition disposition;
        struct sctp_chunk *chunk = arg;
-       sctp_disposition_t disposition;
        struct sctp_shutdownhdr *sdh;
        struct sctp_ulpevent *ev;
        __u32 ctsn;
  * The Cumulative TSN Ack of the received SHUTDOWN chunk
  * MUST be processed.
  */
-sctp_disposition_t sctp_sf_do_9_2_shut_ctsn(struct net *net,
-                                          const struct sctp_endpoint *ep,
-                                          const struct sctp_association *asoc,
-                                          const union sctp_subtype type,
-                                          void *arg,
-                                          struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_9_2_shut_ctsn(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_shutdownhdr *sdh;
  * that belong to this association, it should discard the INIT chunk and
  * retransmit the SHUTDOWN ACK chunk.
  */
-sctp_disposition_t sctp_sf_do_9_2_reshutack(struct net *net,
-                                   const struct sctp_endpoint *ep,
-                                   const struct sctp_association *asoc,
-                                   const union sctp_subtype type,
-                                   void *arg,
-                                   struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_9_2_reshutack(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *chunk = (struct sctp_chunk *) arg;
+       struct sctp_chunk *chunk = arg;
        struct sctp_chunk *reply;
 
        /* Make sure that the chunk has a valid length */
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_ecn_cwr(struct net *net,
-                                     const struct sctp_endpoint *ep,
-                                     const struct sctp_association *asoc,
-                                     const union sctp_subtype type,
-                                     void *arg,
-                                     struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_ecn_cwr(struct net *net,
+                                        const struct sctp_endpoint *ep,
+                                        const struct sctp_association *asoc,
+                                        const union sctp_subtype type,
+                                        void *arg,
+                                        struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_cwrhdr *cwr;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_ecne(struct net *net,
-                                  const struct sctp_endpoint *ep,
-                                  const struct sctp_association *asoc,
-                                  const union sctp_subtype type,
-                                  void *arg,
-                                  struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_ecne(struct net *net,
+                                     const struct sctp_endpoint *ep,
+                                     const struct sctp_association *asoc,
+                                     const union sctp_subtype type,
+                                     void *arg, struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_ecnehdr *ecne;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_eat_data_6_2(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_eat_data_6_2(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        union sctp_arg force = SCTP_NOFORCE();
        struct sctp_chunk *chunk = arg;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_eat_data_fast_4_4(struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_eat_data_fast_4_4(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        int error;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_eat_sack_6_2(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_eat_sack_6_2(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_sackhdr *sackh;
  *
  * The return value is the disposition of the chunk.
 */
-static sctp_disposition_t sctp_sf_tabort_8_4_8(struct net *net,
+static enum sctp_disposition sctp_sf_tabort_8_4_8(
+                                       struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
                                        const union sctp_subtype type,
  *
  * The return value is the disposition of the chunk.
 */
-sctp_disposition_t sctp_sf_operr_notify(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_operr_notify(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_errhdr *err;
  *
  * The return value is the disposition.
  */
-sctp_disposition_t sctp_sf_do_9_2_final(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_9_2_final(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_chunk *reply;
  *    receiver of the OOTB packet shall discard the OOTB packet and take
  *    no further action.
  */
-sctp_disposition_t sctp_sf_ootb(struct net *net,
-                               const struct sctp_endpoint *ep,
-                               const struct sctp_association *asoc,
-                               const union sctp_subtype type,
-                               void *arg,
-                               struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_ootb(struct net *net,
+                                  const struct sctp_endpoint *ep,
+                                  const struct sctp_association *asoc,
+                                  const union sctp_subtype type,
+                                  void *arg, struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sk_buff *skb = chunk->skb;
        struct sctp_chunkhdr *ch;
        struct sctp_errhdr *err;
-       __u8 *ch_end;
-       int ootb_shut_ack = 0;
        int ootb_cookie_ack = 0;
+       int ootb_shut_ack = 0;
+       __u8 *ch_end;
 
        SCTP_INC_STATS(net, SCTP_MIB_OUTOFBLUES);
 
  * (endpoint, asoc, type, arg, commands)
  *
  * Outputs
- * (sctp_disposition_t)
+ * (enum sctp_disposition)
  *
  * The return value is the disposition of the chunk.
  */
-static sctp_disposition_t sctp_sf_shut_8_4_5(struct net *net,
-                                            const struct sctp_endpoint *ep,
-                                            const struct sctp_association *asoc,
-                                            const union sctp_subtype type,
-                                            void *arg,
-                                            struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_shut_8_4_5(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_packet *packet = NULL;
        struct sctp_chunk *chunk = arg;
  *   chunks. --piggy ]
  *
  */
-sctp_disposition_t sctp_sf_do_8_5_1_E_sa(struct net *net,
-                                     const struct sctp_endpoint *ep,
-                                     const struct sctp_association *asoc,
-                                     const union sctp_subtype type,
-                                     void *arg,
-                                     struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_8_5_1_E_sa(struct net *net,
+                                           const struct sctp_endpoint *ep,
+                                           const struct sctp_association *asoc,
+                                           const union sctp_subtype type,
+                                           void *arg,
+                                           struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
 
 }
 
 /* ADDIP Section 4.2 Upon reception of an ASCONF Chunk.  */
-sctp_disposition_t sctp_sf_do_asconf(struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type, void *arg,
-                                    struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_asconf(struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk       *chunk = arg;
-       struct sctp_chunk       *asconf_ack = NULL;
-       struct sctp_paramhdr    *err_param = NULL;
-       struct sctp_addiphdr    *hdr;
-       __u32                   serial;
+       struct sctp_paramhdr *err_param = NULL;
+       struct sctp_chunk *asconf_ack = NULL;
+       struct sctp_chunk *chunk = arg;
+       struct sctp_addiphdr *hdr;
+       __u32 serial;
 
        if (!sctp_vtag_verify(chunk, asoc)) {
                sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_BAD_TAG,
  * When building TLV parameters for the ASCONF Chunk that will add or
  * delete IP addresses the D0 to D13 rules should be applied:
  */
-sctp_disposition_t sctp_sf_do_asconf_ack(struct net *net,
-                                        const struct sctp_endpoint *ep,
-                                        const struct sctp_association *asoc,
-                                        const union sctp_subtype type,
-                                        void *arg,
-                                        struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_asconf_ack(struct net *net,
+                                           const struct sctp_endpoint *ep,
+                                           const struct sctp_association *asoc,
+                                           const union sctp_subtype type,
+                                           void *arg,
+                                           struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk       *asconf_ack = arg;
-       struct sctp_chunk       *last_asconf = asoc->addip_last_asconf;
-       struct sctp_chunk       *abort;
-       struct sctp_paramhdr    *err_param = NULL;
-       struct sctp_addiphdr    *addip_hdr;
-       __u32                   sent_serial, rcvd_serial;
+       struct sctp_chunk *last_asconf = asoc->addip_last_asconf;
+       struct sctp_paramhdr *err_param = NULL;
+       struct sctp_chunk *asconf_ack = arg;
+       struct sctp_addiphdr *addip_hdr;
+       __u32 sent_serial, rcvd_serial;
+       struct sctp_chunk *abort;
 
        if (!sctp_vtag_verify(asconf_ack, asoc)) {
                sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_BAD_TAG,
 }
 
 /* RE-CONFIG Section 5.2 Upon reception of an RECONF Chunk. */
-sctp_disposition_t sctp_sf_do_reconf(struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type, void *arg,
-                                    struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_reconf(struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_paramhdr *err_param = NULL;
        struct sctp_chunk *chunk = arg;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_eat_fwd_tsn(struct net *net,
-                                      const struct sctp_endpoint *ep,
-                                      const struct sctp_association *asoc,
-                                      const union sctp_subtype type,
-                                      void *arg,
-                                      struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_eat_fwd_tsn(struct net *net,
+                                         const struct sctp_endpoint *ep,
+                                         const struct sctp_association *asoc,
+                                         const union sctp_subtype type,
+                                         void *arg,
+                                         struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *chunk = arg;
        struct sctp_fwdtsn_hdr *fwdtsn_hdr;
+       struct sctp_chunk *chunk = arg;
        struct sctp_fwdtsn_skip *skip;
        __u16 len;
        __u32 tsn;
        return SCTP_DISPOSITION_DISCARD;
 }
 
-sctp_disposition_t sctp_sf_eat_fwd_tsn_fast(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_eat_fwd_tsn_fast(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *chunk = arg;
        struct sctp_fwdtsn_hdr *fwdtsn_hdr;
+       struct sctp_chunk *chunk = arg;
        struct sctp_fwdtsn_skip *skip;
        __u16 len;
        __u32 tsn;
  * The return value is the disposition of the chunk.
  */
 static enum sctp_ierror sctp_sf_authenticate(
-                               struct net *net,
-                               const struct sctp_endpoint *ep,
-                               const struct sctp_association *asoc,
-                               const union sctp_subtype type,
-                               struct sctp_chunk *chunk)
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       struct sctp_chunk *chunk)
 {
        struct sctp_authhdr *auth_hdr;
+       __u8 *save_digest, *digest;
        struct sctp_hmac *hmac;
        unsigned int sig_len;
        __u16 key_id;
-       __u8 *save_digest;
-       __u8 *digest;
 
        /* Pull in the auth header, so we can do some more verification */
        auth_hdr = (struct sctp_authhdr *)chunk->skb->data;
        return SCTP_IERROR_NOMEM;
 }
 
-sctp_disposition_t sctp_sf_eat_auth(struct net *net,
-                                   const struct sctp_endpoint *ep,
-                                   const struct sctp_association *asoc,
-                                   const union sctp_subtype type,
-                                   void *arg,
-                                   struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_eat_auth(struct net *net,
+                                      const struct sctp_endpoint *ep,
+                                      const struct sctp_association *asoc,
+                                      const union sctp_subtype type,
+                                      void *arg, struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
        struct sctp_authhdr *auth_hdr;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_unk_chunk(struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_unk_chunk(struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *unk_chunk = arg;
        struct sctp_chunk *err_chunk;
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_discard_chunk(struct net *net,
-                                        const struct sctp_endpoint *ep,
-                                        const struct sctp_association *asoc,
-                                        const union sctp_subtype type,
-                                        void *arg,
-                                        struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_discard_chunk(struct net *net,
+                                           const struct sctp_endpoint *ep,
+                                           const struct sctp_association *asoc,
+                                           const union sctp_subtype type,
+                                           void *arg,
+                                           struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
 
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_pdiscard(struct net *net,
-                                   const struct sctp_endpoint *ep,
-                                   const struct sctp_association *asoc,
-                                   const union sctp_subtype type,
-                                   void *arg,
-                                   struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_pdiscard(struct net *net,
+                                      const struct sctp_endpoint *ep,
+                                      const struct sctp_association *asoc,
+                                      const union sctp_subtype type,
+                                      void *arg, struct sctp_cmd_seq *commands)
 {
        SCTP_INC_STATS(net, SCTP_MIB_IN_PKT_DISCARDS);
        sctp_add_cmd_sf(commands, SCTP_CMD_DISCARD_PACKET, SCTP_NULL());
  * We simply tag the chunk as a violation.  The state machine will log
  * the violation and continue.
  */
-sctp_disposition_t sctp_sf_violation(struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_violation(struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
 
 /*
  * Common function to handle a protocol violation.
  */
-static sctp_disposition_t sctp_sf_abort_violation(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands,
-                                    const __u8 *payload,
-                                    const size_t paylen)
+static enum sctp_disposition sctp_sf_abort_violation(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands,
+                                       const __u8 *payload,
+                                       const size_t paylen)
 {
        struct sctp_packet *packet = NULL;
        struct sctp_chunk *chunk =  arg;
  *
  * Generate an  ABORT chunk and terminate the association.
  */
-static sctp_disposition_t sctp_sf_violation_chunklen(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_violation_chunklen(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        static const char err_str[] = "The following chunk had invalid length:";
 
        return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str,
-                                       sizeof(err_str));
+                                      sizeof(err_str));
 }
 
 /*
  * or accumulated length in multi parameters exceeds the end of the chunk,
  * the length is considered as invalid.
  */
-static sctp_disposition_t sctp_sf_violation_paramlen(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg, void *ext,
-                                    struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_violation_paramlen(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg, void *ext,
+                                       struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *chunk =  arg;
        struct sctp_paramhdr *param = ext;
        struct sctp_chunk *abort = NULL;
+       struct sctp_chunk *chunk = arg;
 
        if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc))
                goto discard;
  * We inform the other end by sending an ABORT with a Protocol Violation
  * error code.
  */
-static sctp_disposition_t sctp_sf_violation_ctsn(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_violation_ctsn(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        static const char err_str[] = "The cumulative tsn ack beyond the max tsn currently sent:";
 
        return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str,
-                                       sizeof(err_str));
+                                      sizeof(err_str));
 }
 
 /* Handle protocol violation of an invalid chunk bundling.  For example,
  * statement from the specs.  Additionally, there might be an attacker
  * on the path and we may not want to continue this communication.
  */
-static sctp_disposition_t sctp_sf_violation_chunk(
-                                    struct net *net,
-                                    const struct sctp_endpoint *ep,
-                                    const struct sctp_association *asoc,
-                                    const union sctp_subtype type,
-                                    void *arg,
-                                    struct sctp_cmd_seq *commands)
+static enum sctp_disposition sctp_sf_violation_chunk(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        static const char err_str[] = "The following chunk violates protocol:";
 
                return sctp_sf_violation(net, ep, asoc, type, arg, commands);
 
        return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str,
-                                       sizeof(err_str));
+                                      sizeof(err_str));
 }
 /***************************************************************************
  * These are the state functions for handling primitive (Section 10) events.
  *
  * The return value is a disposition.
  */
-sctp_disposition_t sctp_sf_do_prm_asoc(struct net *net,
-                                      const struct sctp_endpoint *ep,
-                                      const struct sctp_association *asoc,
-                                      const union sctp_subtype type,
-                                      void *arg,
-                                      struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_prm_asoc(struct net *net,
+                                         const struct sctp_endpoint *ep,
+                                         const struct sctp_association *asoc,
+                                         const union sctp_subtype type,
+                                         void *arg,
+                                         struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *repl;
        struct sctp_association *my_asoc;
+       struct sctp_chunk *repl;
 
        /* The comment below says that we enter COOKIE-WAIT AFTER
         * sending the INIT, but that doesn't actually work in our
  *
  * The return value is the disposition.
  */
-sctp_disposition_t sctp_sf_do_prm_send(struct net *net,
-                                      const struct sctp_endpoint *ep,
-                                      const struct sctp_association *asoc,
-                                      const union sctp_subtype type,
-                                      void *arg,
-                                      struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_prm_send(struct net *net,
+                                         const struct sctp_endpoint *ep,
+                                         const struct sctp_association *asoc,
+                                         const union sctp_subtype type,
+                                         void *arg,
+                                         struct sctp_cmd_seq *commands)
 {
        struct sctp_datamsg *msg = arg;
 
  *
  * The return value is the disposition.
  */
-sctp_disposition_t sctp_sf_do_9_2_prm_shutdown(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_9_2_prm_shutdown(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
-       int disposition;
+       enum sctp_disposition disposition;
 
        /* From 9.2 Shutdown of an Association
         * Upon receipt of the SHUTDOWN primitive from its upper
                disposition = sctp_sf_do_9_2_start_shutdown(net, ep, asoc, type,
                                                            arg, commands);
        }
+
        return disposition;
 }
 
  *
  * The return value is the disposition.
  */
-sctp_disposition_t sctp_sf_do_9_1_prm_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_9_1_prm_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* From 9.1 Abort of an Association
         * Upon receipt of the ABORT primitive from its upper
 }
 
 /* We tried an illegal operation on an association which is closed.  */
-sctp_disposition_t sctp_sf_error_closed(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_error_closed(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_ERROR, SCTP_ERROR(-EINVAL));
        return SCTP_DISPOSITION_CONSUME;
 /* We tried an illegal operation on an association which is shutting
  * down.
  */
-sctp_disposition_t sctp_sf_error_shutdown(struct net *net,
-                                         const struct sctp_endpoint *ep,
-                                         const struct sctp_association *asoc,
-                                         const union sctp_subtype type,
-                                         void *arg,
-                                         struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_error_shutdown(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        sctp_add_cmd_sf(commands, SCTP_CMD_REPORT_ERROR,
                        SCTP_ERROR(-ESHUTDOWN));
  * Outputs
  * (timers)
  */
-sctp_disposition_t sctp_sf_cookie_wait_prm_shutdown(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_cookie_wait_prm_shutdown(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,
                        SCTP_TO(SCTP_EVENT_TIMEOUT_T1_INIT));
  * Outputs
  * (timers)
  */
-sctp_disposition_t sctp_sf_cookie_echoed_prm_shutdown(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg, struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_cookie_echoed_prm_shutdown(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* There is a single T1 timer, so we should be able to use
         * common function with the COOKIE-WAIT state.
  * Outputs
  * (timers)
  */
-sctp_disposition_t sctp_sf_cookie_wait_prm_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_cookie_wait_prm_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *abort = arg;
 
  * Outputs
  * (timers)
  */
-sctp_disposition_t sctp_sf_cookie_echoed_prm_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_cookie_echoed_prm_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* There is a single T1 timer, so we should be able to use
         * common function with the COOKIE-WAIT state.
  * Outputs
  * (timers)
  */
-sctp_disposition_t sctp_sf_shutdown_pending_prm_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_shutdown_pending_prm_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* Stop the T5-shutdown guard timer.  */
        sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,
  * Outputs
  * (timers)
  */
-sctp_disposition_t sctp_sf_shutdown_sent_prm_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_shutdown_sent_prm_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* Stop the T2-shutdown timer.  */
        sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP,
  * Outputs
  * (timers)
  */
-sctp_disposition_t sctp_sf_shutdown_ack_sent_prm_abort(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_shutdown_ack_sent_prm_abort(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        /* The same T2 timer, so we should be able to use
         * common function with the SHUTDOWN-SENT state.
  * o destination transport address - the transport address of the
  *   association on which a heartbeat should be issued.
  */
-sctp_disposition_t sctp_sf_do_prm_requestheartbeat(
+enum sctp_disposition sctp_sf_do_prm_requestheartbeat(
                                        struct net *net,
                                        const struct sctp_endpoint *ep,
                                        const struct sctp_association *asoc,
  * When an endpoint has an ASCONF signaled change to be sent to the
  * remote endpoint it should do A1 to A9
  */
-sctp_disposition_t sctp_sf_do_prm_asconf(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_prm_asconf(struct net *net,
+                                           const struct sctp_endpoint *ep,
+                                           const struct sctp_association *asoc,
+                                           const union sctp_subtype type,
+                                           void *arg,
+                                           struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
 
 }
 
 /* RE-CONFIG Section 5.1 RECONF Chunk Procedures */
-sctp_disposition_t sctp_sf_do_prm_reconf(struct net *net,
-                                        const struct sctp_endpoint *ep,
-                                        const struct sctp_association *asoc,
-                                        const union sctp_subtype type,
-                                        void *arg,
-                                        struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_prm_reconf(struct net *net,
+                                           const struct sctp_endpoint *ep,
+                                           const struct sctp_association *asoc,
+                                           const union sctp_subtype type,
+                                           void *arg,
+                                           struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = arg;
 
  *
  * The return value is the disposition of the primitive.
  */
-sctp_disposition_t sctp_sf_ignore_primitive(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_ignore_primitive(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        pr_debug("%s: primitive type:%d is ignored\n", __func__,
                 type.primitive);
  * subscribes to this event, if there is no data to be sent or
  * retransmit, the stack will immediately send up this notification.
  */
-sctp_disposition_t sctp_sf_do_no_pending_tsn(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_no_pending_tsn(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_ulpevent *event;
 
  *
  * The return value is the disposition.
  */
-sctp_disposition_t sctp_sf_do_9_2_start_shutdown(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_9_2_start_shutdown(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *reply;
 
  *
  * The return value is the disposition.
  */
-sctp_disposition_t sctp_sf_do_9_2_shutdown_ack(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_9_2_shutdown_ack(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *chunk = (struct sctp_chunk *) arg;
+       struct sctp_chunk *chunk = arg;
        struct sctp_chunk *reply;
 
        /* There are 2 ways of getting here:
  *
  * The return value is the disposition of the event.
  */
-sctp_disposition_t sctp_sf_ignore_other(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_ignore_other(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        pr_debug("%s: the event other type:%d is ignored\n",
                 __func__, type.other);
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_do_6_3_3_rtx(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_6_3_3_rtx(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        struct sctp_transport *transport = arg;
 
  * allow. However, an SCTP transmitter MUST NOT be more aggressive than
  * the following algorithms allow.
  */
-sctp_disposition_t sctp_sf_do_6_2_sack(struct net *net,
-                                      const struct sctp_endpoint *ep,
-                                      const struct sctp_association *asoc,
-                                      const union sctp_subtype type,
-                                      void *arg,
-                                      struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_do_6_2_sack(struct net *net,
+                                         const struct sctp_endpoint *ep,
+                                         const struct sctp_association *asoc,
+                                         const union sctp_subtype type,
+                                         void *arg,
+                                         struct sctp_cmd_seq *commands)
 {
        SCTP_INC_STATS(net, SCTP_MIB_DELAY_SACK_EXPIREDS);
        sctp_add_cmd_sf(commands, SCTP_CMD_GEN_SACK, SCTP_FORCE());
  * (timers, events)
  *
  */
-sctp_disposition_t sctp_sf_t1_init_timer_expire(struct net *net,
-                                          const struct sctp_endpoint *ep,
-                                          const struct sctp_association *asoc,
-                                          const union sctp_subtype type,
-                                          void *arg,
-                                          struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_t1_init_timer_expire(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
+       int attempts = asoc->init_err_counter + 1;
        struct sctp_chunk *repl = NULL;
        struct sctp_bind_addr *bp;
-       int attempts = asoc->init_err_counter + 1;
 
        pr_debug("%s: timer T1 expired (INIT)\n", __func__);
 
  * (timers, events)
  *
  */
-sctp_disposition_t sctp_sf_t1_cookie_timer_expire(struct net *net,
-                                          const struct sctp_endpoint *ep,
-                                          const struct sctp_association *asoc,
-                                          const union sctp_subtype type,
-                                          void *arg,
-                                          struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_t1_cookie_timer_expire(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
-       struct sctp_chunk *repl = NULL;
        int attempts = asoc->init_err_counter + 1;
+       struct sctp_chunk *repl = NULL;
 
        pr_debug("%s: timer T1 expired (COOKIE-ECHO)\n", __func__);
 
  * the T2-Shutdown timer,  giving its peer ample opportunity to transmit
  * all of its queued DATA chunks that have not yet been sent.
  */
-sctp_disposition_t sctp_sf_t2_timer_expire(struct net *net,
-                                          const struct sctp_endpoint *ep,
-                                          const struct sctp_association *asoc,
-                                          const union sctp_subtype type,
-                                          void *arg,
-                                          struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_t2_timer_expire(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *reply = NULL;
 
  * ADDIP Section 4.1 ASCONF CHunk Procedures
  * If the T4 RTO timer expires the endpoint should do B1 to B5
  */
-sctp_disposition_t sctp_sf_t4_timer_expire(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_t4_timer_expire(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *chunk = asoc->addip_last_asconf;
        struct sctp_transport *transport = chunk->transport;
  * At the expiration of this timer the sender SHOULD abort the association
  * by sending an ABORT chunk.
  */
-sctp_disposition_t sctp_sf_t5_timer_expire(struct net *net,
-                                          const struct sctp_endpoint *ep,
-                                          const struct sctp_association *asoc,
-                                          const union sctp_subtype type,
-                                          void *arg,
-                                          struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_t5_timer_expire(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
        struct sctp_chunk *reply = NULL;
 
  * The work that needs to be done is same as when SHUTDOWN is initiated by
  * the user.  So this routine looks same as sctp_sf_do_9_2_prm_shutdown().
  */
-sctp_disposition_t sctp_sf_autoclose_timer_expire(
-       struct net *net,
-       const struct sctp_endpoint *ep,
-       const struct sctp_association *asoc,
-       const union sctp_subtype type,
-       void *arg,
-       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_autoclose_timer_expire(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       const union sctp_subtype type,
+                                       void *arg,
+                                       struct sctp_cmd_seq *commands)
 {
-       int disposition;
+       enum sctp_disposition disposition;
 
        SCTP_INC_STATS(net, SCTP_MIB_AUTOCLOSE_EXPIREDS);
 
                disposition = sctp_sf_do_9_2_start_shutdown(net, ep, asoc, type,
                                                            arg, commands);
        }
+
        return disposition;
 }
 
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_not_impl(struct net *net,
-                                   const struct sctp_endpoint *ep,
-                                   const struct sctp_association *asoc,
-                                   const union sctp_subtype type,
-                                   void *arg,
-                                   struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_not_impl(struct net *net,
+                                      const struct sctp_endpoint *ep,
+                                      const struct sctp_association *asoc,
+                                      const union sctp_subtype type,
+                                      void *arg, struct sctp_cmd_seq *commands)
 {
        return SCTP_DISPOSITION_NOT_IMPL;
 }
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_bug(struct net *net,
-                              const struct sctp_endpoint *ep,
-                              const struct sctp_association *asoc,
-                              const union sctp_subtype type,
-                              void *arg,
-                              struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_bug(struct net *net,
+                                 const struct sctp_endpoint *ep,
+                                 const struct sctp_association *asoc,
+                                 const union sctp_subtype type,
+                                 void *arg, struct sctp_cmd_seq *commands)
 {
        return SCTP_DISPOSITION_BUG;
 }
  *
  * The return value is the disposition of the chunk.
  */
-sctp_disposition_t sctp_sf_timer_ignore(struct net *net,
-                                       const struct sctp_endpoint *ep,
-                                       const struct sctp_association *asoc,
-                                       const union sctp_subtype type,
-                                       void *arg,
-                                       struct sctp_cmd_seq *commands)
+enum sctp_disposition sctp_sf_timer_ignore(struct net *net,
+                                          const struct sctp_endpoint *ep,
+                                          const struct sctp_association *asoc,
+                                          const union sctp_subtype type,
+                                          void *arg,
+                                          struct sctp_cmd_seq *commands)
 {
        pr_debug("%s: timer %d ignored\n", __func__, type.chunk);
 
 static struct sctp_sackhdr *sctp_sm_pull_sack(struct sctp_chunk *chunk)
 {
        struct sctp_sackhdr *sack;
+       __u16 num_dup_tsns;
        unsigned int len;
        __u16 num_blocks;
-       __u16 num_dup_tsns;
 
        /* Protect ourselves from reading too far into
         * the skb from a bogus sender.
 /* Create an ABORT packet to be sent as a response, with the specified
  * error causes.
  */
-static struct sctp_packet *sctp_abort_pkt_new(struct net *net,
-                                 const struct sctp_endpoint *ep,
-                                 const struct sctp_association *asoc,
-                                 struct sctp_chunk *chunk,
-                                 const void *payload,
-                                 size_t paylen)
+static struct sctp_packet *sctp_abort_pkt_new(
+                                       struct net *net,
+                                       const struct sctp_endpoint *ep,
+                                       const struct sctp_association *asoc,
+                                       struct sctp_chunk *chunk,
+                                       const void *payload, size_t paylen)
 {
        struct sctp_packet *packet;
        struct sctp_chunk *abort;
 }
 
 /* Allocate a packet for responding in the OOTB conditions.  */
-static struct sctp_packet *sctp_ootb_pkt_new(struct net *net,
-                                            const struct sctp_association *asoc,
-                                            const struct sctp_chunk *chunk)
+static struct sctp_packet *sctp_ootb_pkt_new(
+                                       struct net *net,
+                                       const struct sctp_association *asoc,
+                                       const struct sctp_chunk *chunk)
 {
-       struct sctp_packet *packet;
        struct sctp_transport *transport;
-       __u16 sport;
-       __u16 dport;
+       struct sctp_packet *packet;
+       __u16 sport, dport;
        __u32 vtag;
 
        /* Get the source and destination port from the inbound packet.  */
                         struct sctp_chunk *chunk,
                         struct sctp_cmd_seq *commands)
 {
-       struct sctp_datahdr *data_hdr;
-       struct sctp_chunk *err;
-       size_t datalen;
-       enum sctp_verb deliver;
-       int tmp;
-       __u32 tsn;
        struct sctp_tsnmap *map = (struct sctp_tsnmap *)&asoc->peer.tsn_map;
        struct sock *sk = asoc->base.sk;
        struct net *net = sock_net(sk);
-       u16 ssn;
-       u16 sid;
+       struct sctp_datahdr *data_hdr;
+       struct sctp_chunk *err;
+       enum sctp_verb deliver;
+       size_t datalen;
        u8 ordered = 0;
+       u16 ssn, sid;
+       __u32 tsn;
+       int tmp;
 
        data_hdr = (struct sctp_datahdr *)chunk->skb->data;
        chunk->subh.data_hdr = data_hdr;