Revert "net: sctp: convert sctp_checksum_disable module param into sctp sysctl"
authorDavid S. Miller <davem@davemloft.net>
Fri, 9 Aug 2013 20:09:41 +0000 (13:09 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Aug 2013 20:09:41 +0000 (13:09 -0700)
This reverts commit cda5f98e36576596b9230483ec52bff3cc97eb21.

As per Vlad's request.

Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/ip-sysctl.txt
include/net/netns/sctp.h
include/net/sctp/structs.h
net/sctp/input.c
net/sctp/output.c
net/sctp/protocol.c
net/sctp/sysctl.c

index 1b27b0b..36be26b 100644 (file)
@@ -1507,14 +1507,6 @@ sack_timeout - INTEGER
 
        Default: 200
 
-checksum_disable - BOOLEAN
-       Disable SCTP checksum computing and verification for debugging purpose.
-
-       1: Disable checksumming
-       0: Enable checksumming
-
-       Default: 0
-
 valid_cookie_life - INTEGER
        The default lifetime of the SCTP cookie (in milliseconds).  The cookie
        is used during association establishment.
index ebfdf1e..3573a81 100644 (file)
@@ -129,9 +129,6 @@ struct netns_sctp {
 
        /* Threshold for autoclose timeout, in seconds. */
        unsigned long max_autoclose;
-
-       /* Flag to disable SCTP checksumming. */
-       int checksum_disable;
 };
 
 #endif /* __NETNS_SCTP_H__ */
index 78eedf0..422db6c 100644 (file)
@@ -135,6 +135,10 @@ extern struct sctp_globals {
        /* This is the sctp port control hash.  */
        int port_hashsize;
        struct sctp_bind_hashbucket *port_hashtable;
+
+       /* Flag to indicate whether computing and verifying checksum
+        * is disabled. */
+        bool checksum_disable;
 } sctp_globals;
 
 #define sctp_max_instreams             (sctp_globals.max_instreams)
@@ -146,6 +150,7 @@ extern struct sctp_globals {
 #define sctp_assoc_hashtable           (sctp_globals.assoc_hashtable)
 #define sctp_port_hashsize             (sctp_globals.port_hashsize)
 #define sctp_port_hashtable            (sctp_globals.port_hashtable)
+#define sctp_checksum_disable          (sctp_globals.checksum_disable)
 
 /* SCTP Socket type: UDP or TCP style. */
 typedef enum {
index 2873e22..5f20686 100644 (file)
@@ -134,8 +134,8 @@ int sctp_rcv(struct sk_buff *skb)
        __skb_pull(skb, skb_transport_offset(skb));
        if (skb->len < sizeof(struct sctphdr))
                goto discard_it;
-       if (!net->sctp.checksum_disable && !skb_csum_unnecessary(skb) &&
-           sctp_rcv_checksum(net, skb) < 0)
+       if (!sctp_checksum_disable && !skb_csum_unnecessary(skb) &&
+                 sctp_rcv_checksum(net, skb) < 0)
                goto discard_it;
 
        skb_pull(skb, sizeof(struct sctphdr));
index e35b84c..0ac3a65 100644 (file)
@@ -389,7 +389,6 @@ int sctp_packet_transmit(struct sctp_packet *packet)
        int padding;            /* How much padding do we need?  */
        __u8 has_data = 0;
        struct dst_entry *dst = tp->dst;
-       struct net *net;
        unsigned char *auth = NULL;     /* pointer to auth in skb data */
        __u32 cksum_buf_len = sizeof(struct sctphdr);
 
@@ -536,9 +535,7 @@ int sctp_packet_transmit(struct sctp_packet *packet)
         * Note: Adler-32 is no longer applicable, as has been replaced
         * by CRC32-C as described in <draft-ietf-tsvwg-sctpcsum-02.txt>.
         */
-       net = dev_net(dst->dev);
-
-       if (!net->sctp.checksum_disable) {
+       if (!sctp_checksum_disable) {
                if (!(dst->dev->features & NETIF_F_SCTP_CSUM)) {
                        __u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
 
index 5448297..5e17092 100644 (file)
@@ -1187,9 +1187,6 @@ static int __net_init sctp_net_init(struct net *net)
        /* Whether Cookie Preservative is enabled(1) or not(0) */
        net->sctp.cookie_preserve_enable        = 1;
 
-       /* Whether SCTP checksumming is disabled(1) or not(0) */
-       net->sctp.checksum_disable              = 0;
-
        /* Default sctp sockets to use md5 as their hmac alg */
 #if defined (CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5)
        net->sctp.sctp_hmac_alg                 = "md5";
@@ -1546,4 +1543,6 @@ MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-132");
 MODULE_ALIAS("net-pf-" __stringify(PF_INET6) "-proto-132");
 MODULE_AUTHOR("Linux Kernel SCTP developers <linux-sctp@vger.kernel.org>");
 MODULE_DESCRIPTION("Support for the SCTP protocol (RFC2960)");
+module_param_named(no_checksums, sctp_checksum_disable, bool, 0644);
+MODULE_PARM_DESC(no_checksums, "Disable checksums computing and verification");
 MODULE_LICENSE("GPL");
index 1b1ee76..6b36561 100644 (file)
@@ -290,15 +290,7 @@ static struct ctl_table sctp_net_table[] = {
                .extra1         = &max_autoclose_min,
                .extra2         = &max_autoclose_max,
        },
-       {
-               .procname       = "checksum_disable",
-               .data           = &init_net.sctp.checksum_disable,
-               .maxlen         = sizeof(int),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax,
-               .extra1         = &zero,
-               .extra2         = &one,
-       },
+
        { /* sentinel */ }
 };