Bluetooth: fix vendor ext rssi link alert event
[platform/kernel/linux-starfive.git] / net / sctp / sysctl.c
index b46a416..43ebf09 100644 (file)
@@ -84,17 +84,18 @@ static struct ctl_table sctp_table[] = {
        { /* sentinel */ }
 };
 
+/* The following index defines are used in sctp_sysctl_net_register().
+ * If you add new items to the sctp_net_table, please ensure that
+ * the index values of these defines hold the same meaning indicated by
+ * their macro names when they appear in sctp_net_table.
+ */
+#define SCTP_RTO_MIN_IDX       0
+#define SCTP_RTO_MAX_IDX       1
+#define SCTP_PF_RETRANS_IDX    2
+#define SCTP_PS_RETRANS_IDX    3
+
 static struct ctl_table sctp_net_table[] = {
-       {
-               .procname       = "rto_initial",
-               .data           = &init_net.sctp.rto_initial,
-               .maxlen         = sizeof(unsigned int),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax,
-               .extra1         = SYSCTL_ONE,
-               .extra2         = &timer_max
-       },
-       {
+       [SCTP_RTO_MIN_IDX] = {
                .procname       = "rto_min",
                .data           = &init_net.sctp.rto_min,
                .maxlen         = sizeof(unsigned int),
@@ -103,7 +104,7 @@ static struct ctl_table sctp_net_table[] = {
                .extra1         = SYSCTL_ONE,
                .extra2         = &init_net.sctp.rto_max
        },
-       {
+       [SCTP_RTO_MAX_IDX] =  {
                .procname       = "rto_max",
                .data           = &init_net.sctp.rto_max,
                .maxlen         = sizeof(unsigned int),
@@ -112,6 +113,33 @@ static struct ctl_table sctp_net_table[] = {
                .extra1         = &init_net.sctp.rto_min,
                .extra2         = &timer_max
        },
+       [SCTP_PF_RETRANS_IDX] = {
+               .procname       = "pf_retrans",
+               .data           = &init_net.sctp.pf_retrans,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec_minmax,
+               .extra1         = SYSCTL_ZERO,
+               .extra2         = &init_net.sctp.ps_retrans,
+       },
+       [SCTP_PS_RETRANS_IDX] = {
+               .procname       = "ps_retrans",
+               .data           = &init_net.sctp.ps_retrans,
+               .maxlen         = sizeof(int),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec_minmax,
+               .extra1         = &init_net.sctp.pf_retrans,
+               .extra2         = &ps_retrans_max,
+       },
+       {
+               .procname       = "rto_initial",
+               .data           = &init_net.sctp.rto_initial,
+               .maxlen         = sizeof(unsigned int),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec_minmax,
+               .extra1         = SYSCTL_ONE,
+               .extra2         = &timer_max
+       },
        {
                .procname       = "rto_alpha_exp_divisor",
                .data           = &init_net.sctp.rto_alpha,
@@ -208,24 +236,6 @@ static struct ctl_table sctp_net_table[] = {
                .extra2         = SYSCTL_INT_MAX,
        },
        {
-               .procname       = "pf_retrans",
-               .data           = &init_net.sctp.pf_retrans,
-               .maxlen         = sizeof(int),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax,
-               .extra1         = SYSCTL_ZERO,
-               .extra2         = &init_net.sctp.ps_retrans,
-       },
-       {
-               .procname       = "ps_retrans",
-               .data           = &init_net.sctp.ps_retrans,
-               .maxlen         = sizeof(int),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec_minmax,
-               .extra1         = &init_net.sctp.pf_retrans,
-               .extra2         = &ps_retrans_max,
-       },
-       {
                .procname       = "sndbuf_policy",
                .data           = &init_net.sctp.sndbuf_policy,
                .maxlen         = sizeof(int),
@@ -586,6 +596,11 @@ int sctp_sysctl_net_register(struct net *net)
        for (i = 0; table[i].data; i++)
                table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp;
 
+       table[SCTP_RTO_MIN_IDX].extra2 = &net->sctp.rto_max;
+       table[SCTP_RTO_MAX_IDX].extra1 = &net->sctp.rto_min;
+       table[SCTP_PF_RETRANS_IDX].extra2 = &net->sctp.ps_retrans;
+       table[SCTP_PS_RETRANS_IDX].extra1 = &net->sctp.pf_retrans;
+
        net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table);
        if (net->sctp.sysctl_header == NULL) {
                kfree(table);