/* Print debugging messages.  */
 #if SCTP_DEBUG
 extern int sctp_debug_flag;
-#define SCTP_DEBUG_PRINTK(whatever...) \
-       ((void) (sctp_debug_flag && printk(KERN_DEBUG whatever)))
-#define SCTP_DEBUG_PRINTK_IPADDR(lead, trail, leadparm, saddr, otherparms...) \
-       if (sctp_debug_flag) { \
-               if (saddr->sa.sa_family == AF_INET6) { \
-                       printk(KERN_DEBUG \
-                              lead "%pI6" trail, \
-                              leadparm, \
-                              &saddr->v6.sin6_addr, \
-                              otherparms); \
-               } else { \
-                       printk(KERN_DEBUG \
-                              lead "%pI4" trail, \
-                              leadparm, \
-                              &saddr->v4.sin_addr.s_addr, \
-                              otherparms); \
-               } \
-       }
+#define SCTP_DEBUG_PRINTK(fmt, args...)                        \
+do {                                                   \
+       if (sctp_debug_flag)                            \
+               printk(KERN_DEBUG pr_fmt(fmt), ##args); \
+} while (0)
+#define SCTP_DEBUG_PRINTK_CONT(fmt, args...)           \
+do {                                                   \
+       if (sctp_debug_flag)                            \
+               pr_cont(fmt, ##args);                   \
+} while (0)
+#define SCTP_DEBUG_PRINTK_IPADDR(fmt_lead, fmt_trail,                  \
+                                args_lead, saddr, args_trail...)       \
+do {                                                                   \
+       if (sctp_debug_flag) {                                          \
+               if (saddr->sa.sa_family == AF_INET6) {                  \
+                       printk(KERN_DEBUG                               \
+                              pr_fmt(fmt_lead "%pI6" fmt_trail),       \
+                              args_lead,                               \
+                              &saddr->v6.sin6_addr,                    \
+                              args_trail);                             \
+               } else {                                                \
+                       printk(KERN_DEBUG                               \
+                              pr_fmt(fmt_lead "%pI4" fmt_trail),       \
+                              args_lead,                               \
+                              &saddr->v4.sin_addr.s_addr,              \
+                              args_trail);                             \
+               }                                                       \
+       }                                                               \
+} while (0)
 #define SCTP_ENABLE_DEBUG { sctp_debug_flag = 1; }
 #define SCTP_DISABLE_DEBUG { sctp_debug_flag = 0; }
 
 #else  /* SCTP_DEBUG */
 
 #define SCTP_DEBUG_PRINTK(whatever...)
+#define SCTP_DEBUG_PRINTK_CONT(fmt, args...)
 #define SCTP_DEBUG_PRINTK_IPADDR(whatever...)
 #define SCTP_ENABLE_DEBUG
 #define SCTP_DISABLE_DEBUG
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/fcntl.h>
 #include <linux/poll.h>
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/net.h>
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <net/sctp/sctp.h>
 #include <net/sctp/sm.h>
 #include <linux/interrupt.h>
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/module.h>
 #include <linux/errno.h>
 #include <linux/types.h>
                memcpy(saddr, baddr, sizeof(union sctp_addr));
                SCTP_DEBUG_PRINTK("saddr: %pI6\n", &saddr->v6.sin6_addr);
        } else {
-               printk(KERN_ERR "%s: asoc:%p Could not find a valid source "
+               pr_err("%s: asoc:%p Could not find a valid source "
                       "address for the dest:%pI6\n",
                       __func__, asoc, &daddr->v6.sin6_addr);
        }
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kernel.h>
 #include <net/sctp/sctp.h>
 
        ent = proc_create("sctp_dbg_objcnt", 0,
                          proc_net_sctp, &sctp_objcnt_ops);
        if (!ent)
-               printk(KERN_WARNING
-                       "sctp_dbg_objcnt: Unable to create /proc entry.\n");
+               pr_warn("sctp_dbg_objcnt: Unable to create /proc entry.\n");
 }
 
 /* Cleanup the objcount entry in the proc filesystem.  */
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/wait.h>
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/list.h>   /* For struct list_head */
 #include <linux/socket.h>
                                        /* Display the end of the
                                         * current range.
                                         */
-                                       SCTP_DEBUG_PRINTK("-%08x",
-                                                         dbg_last_ack_tsn);
+                                       SCTP_DEBUG_PRINTK_CONT("-%08x",
+                                                              dbg_last_ack_tsn);
                                }
 
                                /* Start a new range.  */
-                               SCTP_DEBUG_PRINTK(",%08x", tsn);
+                               SCTP_DEBUG_PRINTK_CONT(",%08x", tsn);
                                dbg_ack_tsn = tsn;
                                break;
 
                        case 1: /* The last TSN was NOT ACKed. */
                                if (dbg_last_kept_tsn != dbg_kept_tsn) {
                                        /* Display the end of current range. */
-                                       SCTP_DEBUG_PRINTK("-%08x",
-                                                         dbg_last_kept_tsn);
+                                       SCTP_DEBUG_PRINTK_CONT("-%08x",
+                                                              dbg_last_kept_tsn);
                                }
 
-                               SCTP_DEBUG_PRINTK("\n");
+                               SCTP_DEBUG_PRINTK_CONT("\n");
 
                                /* FALL THROUGH... */
                        default:
                                        break;
 
                                if (dbg_last_kept_tsn != dbg_kept_tsn)
-                                       SCTP_DEBUG_PRINTK("-%08x",
-                                                         dbg_last_kept_tsn);
+                                       SCTP_DEBUG_PRINTK_CONT("-%08x",
+                                                              dbg_last_kept_tsn);
 
-                               SCTP_DEBUG_PRINTK(",%08x", tsn);
+                               SCTP_DEBUG_PRINTK_CONT(",%08x", tsn);
                                dbg_kept_tsn = tsn;
                                break;
 
                        case 0:
                                if (dbg_last_ack_tsn != dbg_ack_tsn)
-                                       SCTP_DEBUG_PRINTK("-%08x",
-                                                         dbg_last_ack_tsn);
-                               SCTP_DEBUG_PRINTK("\n");
+                                       SCTP_DEBUG_PRINTK_CONT("-%08x",
+                                                              dbg_last_ack_tsn);
+                               SCTP_DEBUG_PRINTK_CONT("\n");
 
                                /* FALL THROUGH... */
                        default:
        switch (dbg_prt_state) {
        case 0:
                if (dbg_last_ack_tsn != dbg_ack_tsn) {
-                       SCTP_DEBUG_PRINTK("-%08x\n", dbg_last_ack_tsn);
+                       SCTP_DEBUG_PRINTK_CONT("-%08x\n", dbg_last_ack_tsn);
                } else {
-                       SCTP_DEBUG_PRINTK("\n");
+                       SCTP_DEBUG_PRINTK_CONT("\n");
                }
        break;
 
        case 1:
                if (dbg_last_kept_tsn != dbg_kept_tsn) {
-                       SCTP_DEBUG_PRINTK("-%08x\n", dbg_last_kept_tsn);
+                       SCTP_DEBUG_PRINTK_CONT("-%08x\n", dbg_last_kept_tsn);
                } else {
-                       SCTP_DEBUG_PRINTK("\n");
+                       SCTP_DEBUG_PRINTK_CONT("\n");
                }
        }
 #endif /* SCTP_DEBUG */
 
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/kernel.h>
 #include <linux/kprobes.h>
 #include <linux/socket.h>
        if (ret)
                goto remove_proc;
 
-       pr_info("SCTP probe registered (port=%d)\n", port);
+       pr_info("probe registered (port=%d)\n", port);
 
        return 0;
 
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/netdevice.h>
                                           &init_net);
 
        if (err < 0) {
-               printk(KERN_ERR
-                      "SCTP: Failed to create the SCTP control socket.\n");
+               pr_err("Failed to create the SCTP control socket\n");
                return err;
        }
        return 0;
                                        __get_free_pages(GFP_ATOMIC, order);
        } while (!sctp_assoc_hashtable && --order > 0);
        if (!sctp_assoc_hashtable) {
-               printk(KERN_ERR "SCTP: Failed association hash alloc.\n");
+               pr_err("Failed association hash alloc\n");
                status = -ENOMEM;
                goto err_ahash_alloc;
        }
        sctp_ep_hashtable = (struct sctp_hashbucket *)
                kmalloc(64 * sizeof(struct sctp_hashbucket), GFP_KERNEL);
        if (!sctp_ep_hashtable) {
-               printk(KERN_ERR "SCTP: Failed endpoint_hash alloc.\n");
+               pr_err("Failed endpoint_hash alloc\n");
                status = -ENOMEM;
                goto err_ehash_alloc;
        }
                                        __get_free_pages(GFP_ATOMIC, order);
        } while (!sctp_port_hashtable && --order > 0);
        if (!sctp_port_hashtable) {
-               printk(KERN_ERR "SCTP: Failed bind hash alloc.");
+               pr_err("Failed bind hash alloc\n");
                status = -ENOMEM;
                goto err_bhash_alloc;
        }
                INIT_HLIST_HEAD(&sctp_port_hashtable[i].chain);
        }
 
-       printk(KERN_INFO "SCTP: Hash tables configured "
-                        "(established %d bind %d)\n",
+       pr_info("Hash tables configured (established %d bind %d)\n",
                sctp_assoc_hashsize, sctp_port_hashsize);
 
        /* Disable ADDIP by default. */
 
        /* Initialize the control inode/socket for handling OOTB packets.  */
        if ((status = sctp_ctl_sock_init())) {
-               printk (KERN_ERR
-                       "SCTP: Failed to initialize the SCTP control sock.\n");
+               pr_err("Failed to initialize the SCTP control sock\n");
                goto err_ctl_sock_init;
        }
 
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/ip.h>
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/skbuff.h>
 #include <linux/types.h>
 #include <linux/socket.h>
 
        case SCTP_DISPOSITION_VIOLATION:
                if (net_ratelimit())
-                       printk(KERN_ERR "sctp protocol violation state %d "
-                              "chunkid %d\n", state, subtype.chunk);
+                       pr_err("protocol violation state %d chunkid %d\n",
+                              state, subtype.chunk);
                break;
 
        case SCTP_DISPOSITION_NOT_IMPL:
-               printk(KERN_WARNING "sctp unimplemented feature in state %d, "
-                      "event_type %d, event_id %d\n",
-                      state, event_type, subtype.chunk);
+               pr_warn("unimplemented feature in state %d, event_type %d, event_id %d\n",
+                       state, event_type, subtype.chunk);
                break;
 
        case SCTP_DISPOSITION_BUG:
-               printk(KERN_ERR "sctp bug in state %d, "
-                      "event_type %d, event_id %d\n",
+               pr_err("bug in state %d, event_type %d, event_id %d\n",
                       state, event_type, subtype.chunk);
                BUG();
                break;
 
        default:
-               printk(KERN_ERR "sctp impossible disposition %d "
-                      "in state %d, event_type %d, event_id %d\n",
+               pr_err("impossible disposition %d in state %d, event_type %d, event_id %d\n",
                       status, state, event_type, subtype.chunk);
                BUG();
                break;
                        sctp_cmd_send_asconf(asoc);
                        break;
                default:
-                       printk(KERN_WARNING "Impossible command: %u, %p\n",
-                              cmd->verb, cmd->obj.ptr);
+                       pr_warn("Impossible command: %u, %p\n",
+                               cmd->verb, cmd->obj.ptr);
                        break;
                }
 
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/ip.h>
        if (unlikely(!link)) {
                if (from_addr.sa.sa_family == AF_INET6) {
                        if (net_ratelimit())
-                               printk(KERN_WARNING
-                                   "%s association %p could not find address %pI6\n",
-                                   __func__,
-                                   asoc,
-                                   &from_addr.v6.sin6_addr);
+                               pr_warn("%s association %p could not find address %pI6\n",
+                                       __func__,
+                                       asoc,
+                                       &from_addr.v6.sin6_addr);
                } else {
                        if (net_ratelimit())
-                               printk(KERN_WARNING
-                                   "%s association %p could not find address %pI4\n",
-                                   __func__,
-                                   asoc,
-                                   &from_addr.v4.sin_addr.s_addr);
+                               pr_warn("%s association %p could not find address %pI4\n",
+                                       __func__,
+                                       asoc,
+                                       &from_addr.v4.sin_addr.s_addr);
                }
                return SCTP_DISPOSITION_DISCARD;
        }
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/skbuff.h>
 #include <net/sctp/sctp.h>
 #include <net/sctp/sm.h>
        .name = "sctp_sf_bug"
 };
 
-#define DO_LOOKUP(_max, _type, _table) \
-       if ((event_subtype._type > (_max))) { \
-               printk(KERN_WARNING \
-                      "sctp table %p possible attack:" \
-                      " event %d exceeds max %d\n", \
-                      _table, event_subtype._type, _max); \
-               return &bug; \
-       } \
-       return &_table[event_subtype._type][(int)state];
+#define DO_LOOKUP(_max, _type, _table)                                 \
+({                                                                     \
+       const sctp_sm_table_entry_t *rtn;                               \
+                                                                       \
+       if ((event_subtype._type > (_max))) {                           \
+               pr_warn("table %p possible attack: event %d exceeds max %d\n", \
+                       _table, event_subtype._type, _max);             \
+               rtn = &bug;                                             \
+       } else                                                          \
+               rtn = &_table[event_subtype._type][(int)state];         \
+                                                                       \
+       rtn;                                                            \
+})
 
 const sctp_sm_table_entry_t *sctp_sm_lookup_event(sctp_event_t event_type,
                                                  sctp_state_t state,
        switch (event_type) {
        case SCTP_EVENT_T_CHUNK:
                return sctp_chunk_event_lookup(event_subtype.chunk, state);
-               break;
        case SCTP_EVENT_T_TIMEOUT:
-               DO_LOOKUP(SCTP_EVENT_TIMEOUT_MAX, timeout,
-                         timeout_event_table);
-               break;
-
+               return DO_LOOKUP(SCTP_EVENT_TIMEOUT_MAX, timeout,
+                                timeout_event_table);
        case SCTP_EVENT_T_OTHER:
-               DO_LOOKUP(SCTP_EVENT_OTHER_MAX, other, other_event_table);
-               break;
-
+               return DO_LOOKUP(SCTP_EVENT_OTHER_MAX, other,
+                                other_event_table);
        case SCTP_EVENT_T_PRIMITIVE:
-               DO_LOOKUP(SCTP_EVENT_PRIMITIVE_MAX, primitive,
-                         primitive_event_table);
-               break;
-
+               return DO_LOOKUP(SCTP_EVENT_PRIMITIVE_MAX, primitive,
+                                primitive_event_table);
        default:
                /* Yikes!  We got an illegal event type.  */
                return &bug;
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/wait.h>
                if (params.sack_delay == 0 && params.sack_freq == 0)
                        return 0;
        } else if (optlen == sizeof(struct sctp_assoc_value)) {
-               printk(KERN_WARNING "SCTP: Use of struct sctp_assoc_value "
-                      "in delayed_ack socket option deprecated\n");
-               printk(KERN_WARNING "SCTP: Use struct sctp_sack_info instead\n");
+               pr_warn("Use of struct sctp_assoc_value in delayed_ack socket option deprecated\n");
+               pr_warn("Use struct sctp_sack_info instead\n");
                if (copy_from_user(¶ms, optval, optlen))
                        return -EFAULT;
 
        int val;
 
        if (optlen == sizeof(int)) {
-               printk(KERN_WARNING
-                  "SCTP: Use of int in maxseg socket option deprecated\n");
-               printk(KERN_WARNING
-                  "SCTP: Use struct sctp_assoc_value instead\n");
+               pr_warn("Use of int in maxseg socket option deprecated\n");
+               pr_warn("Use struct sctp_assoc_value instead\n");
                if (copy_from_user(&val, optval, optlen))
                        return -EFAULT;
                params.assoc_id = 0;
        int assoc_id = 0;
 
        if (optlen == sizeof(int)) {
-               printk(KERN_WARNING
-                  "SCTP: Use of int in max_burst socket option deprecated\n");
-               printk(KERN_WARNING
-                  "SCTP: Use struct sctp_assoc_value instead\n");
+               pr_warn("Use of int in max_burst socket option deprecated\n");
+               pr_warn("Use struct sctp_assoc_value instead\n");
                if (copy_from_user(&val, optval, optlen))
                        return -EFAULT;
        } else if (optlen == sizeof(struct sctp_assoc_value)) {
                if (copy_from_user(¶ms, optval, len))
                        return -EFAULT;
        } else if (len == sizeof(struct sctp_assoc_value)) {
-               printk(KERN_WARNING "SCTP: Use of struct sctp_assoc_value "
-                      "in delayed_ack socket option deprecated\n");
-               printk(KERN_WARNING "SCTP: Use struct sctp_sack_info instead\n");
+               pr_warn("Use of struct sctp_assoc_value in delayed_ack socket option deprecated\n");
+               pr_warn("Use struct sctp_sack_info instead\n");
                if (copy_from_user(¶ms, optval, len))
                        return -EFAULT;
        } else
        struct sctp_association *asoc;
 
        if (len == sizeof(int)) {
-               printk(KERN_WARNING
-                  "SCTP: Use of int in maxseg socket option deprecated\n");
-               printk(KERN_WARNING
-                  "SCTP: Use struct sctp_assoc_value instead\n");
+               pr_warn("Use of int in maxseg socket option deprecated\n");
+               pr_warn("Use struct sctp_assoc_value instead\n");
                params.assoc_id = 0;
        } else if (len >= sizeof(struct sctp_assoc_value)) {
                len = sizeof(struct sctp_assoc_value);
        struct sctp_association *asoc;
 
        if (len == sizeof(int)) {
-               printk(KERN_WARNING
-                  "SCTP: Use of int in max_burst socket option deprecated\n");
-               printk(KERN_WARNING
-                  "SCTP: Use struct sctp_assoc_value instead\n");
+               pr_warn("Use of int in max_burst socket option deprecated\n");
+               pr_warn("Use struct sctp_assoc_value instead\n");
                params.assoc_id = 0;
        } else if (len >= sizeof(struct sctp_assoc_value)) {
                len = sizeof(struct sctp_assoc_value);
                tfm = crypto_alloc_hash(sctp_hmac_alg, 0, CRYPTO_ALG_ASYNC);
                if (IS_ERR(tfm)) {
                        if (net_ratelimit()) {
-                               printk(KERN_INFO
-                                      "SCTP: failed to load transform for %s: %ld\n",
+                               pr_info("failed to load transform for %s: %ld\n",
                                        sctp_hmac_alg, PTR_ERR(tfm));
                        }
                        return -ENOSYS;
 
  * be incorporated into the next SCTP release.
  */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/random.h>
        struct dst_entry *dst;
 
        if (unlikely(pmtu < SCTP_DEFAULT_MINSEGMENT)) {
-               printk(KERN_WARNING "%s: Reported pmtu %d too low, "
-                      "using default minimum of %d\n",
-                      __func__, pmtu,
-                      SCTP_DEFAULT_MINSEGMENT);
+               pr_warn("%s: Reported pmtu %d too low, using default minimum of %d\n",
+                       __func__, pmtu,
+                       SCTP_DEFAULT_MINSEGMENT);
                /* Use default minimum segment size and disable
                 * pmtu discovery on this transport.
                 */