mac80211: fix purging multicast PS buffer queue
[cascardo/linux.git] / net / sctp / protocol.c
index d3d50da..7b523e3 100644 (file)
@@ -240,6 +240,7 @@ static void sctp_v4_from_skb(union sctp_addr *addr, struct sk_buff *skb,
        port = &addr->v4.sin_port;
        addr->v4.sin_family = AF_INET;
 
+       /* Always called on head skb, so this is safe */
        sh = sctp_hdr(skb);
        if (is_saddr) {
                *port  = sh->source;
@@ -1027,7 +1028,7 @@ static const struct proto_ops inet_seqpacket_ops = {
        .setsockopt        = sock_common_setsockopt, /* IP_SOL IP_OPTION is a problem */
        .getsockopt        = sock_common_getsockopt,
        .sendmsg           = inet_sendmsg,
-       .recvmsg           = sock_common_recvmsg,
+       .recvmsg           = inet_recvmsg,
        .mmap              = sock_no_mmap,
        .sendpage          = sock_no_sendpage,
 #ifdef CONFIG_COMPAT
@@ -1479,7 +1480,8 @@ static __init int sctp_init(void)
                INIT_HLIST_HEAD(&sctp_port_hashtable[i].chain);
        }
 
-       if (sctp_transport_hashtable_init())
+       status = sctp_transport_hashtable_init();
+       if (status)
                goto err_thash_alloc;
 
        pr_info("Hash tables configured (bind %d/%d)\n", sctp_port_hashsize,
@@ -1516,6 +1518,9 @@ static __init int sctp_init(void)
        if (status)
                goto err_v6_add_protocol;
 
+       if (sctp_offload_init() < 0)
+               pr_crit("%s: Cannot add SCTP protocol offload\n", __func__);
+
 out:
        return status;
 err_v6_add_protocol: