summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2017-10-16 20:28:45 -0400
committerDavid S. Miller <davem@davemloft.net>2017-10-18 07:39:36 -0400
commiteb4ddaf474285a4c6986f4a1c3205bdb0bed2da9 (patch)
treed88c2cc780254455b2deea9aa1b1b9a92d160c23
parent1bbc728988f09e40c83585cf3322b1f6c1aa17b5 (diff)
net/decnet: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. Cc: "David S. Miller" <davem@davemloft.net> Cc: Johannes Berg <johannes.berg@intel.com> Cc: David Ahern <dsa@cumulusnetworks.com> Cc: linux-decnet-user@lists.sourceforge.net Cc: netdev@vger.kernel.org Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/net/dn.h7
-rw-r--r--include/net/dn_nsp.h1
-rw-r--r--net/decnet/af_decnet.c4
-rw-r--r--net/decnet/dn_dev.c12
-rw-r--r--net/decnet/dn_nsp_out.c11
5 files changed, 5 insertions, 30 deletions
diff --git a/include/net/dn.h b/include/net/dn.h
index 913b73d239f5..4394f7d5cfe8 100644
--- a/include/net/dn.h
+++ b/include/net/dn.h
@@ -122,13 +122,6 @@ struct dn_scp /* Session Control Port */
122 unsigned long keepalive; 122 unsigned long keepalive;
123 void (*keepalive_fxn)(struct sock *sk); 123 void (*keepalive_fxn)(struct sock *sk);
124 124
125 /*
126 * This stuff is for the fast timer for delayed acks
127 */
128 struct timer_list delack_timer;
129 int delack_pending;
130 void (*delack_fxn)(struct sock *sk);
131
132}; 125};
133 126
134static inline struct dn_scp *DN_SK(struct sock *sk) 127static inline struct dn_scp *DN_SK(struct sock *sk)
diff --git a/include/net/dn_nsp.h b/include/net/dn_nsp.h
index 3a3e33d18456..413a15e5339c 100644
--- a/include/net/dn_nsp.h
+++ b/include/net/dn_nsp.h
@@ -17,7 +17,6 @@
17 17
18void dn_nsp_send_data_ack(struct sock *sk); 18void dn_nsp_send_data_ack(struct sock *sk);
19void dn_nsp_send_oth_ack(struct sock *sk); 19void dn_nsp_send_oth_ack(struct sock *sk);
20void dn_nsp_delayed_ack(struct sock *sk);
21void dn_send_conn_ack(struct sock *sk); 20void dn_send_conn_ack(struct sock *sk);
22void dn_send_conn_conf(struct sock *sk, gfp_t gfp); 21void dn_send_conn_conf(struct sock *sk, gfp_t gfp);
23void dn_nsp_send_disc(struct sock *sk, unsigned char type, 22void dn_nsp_send_disc(struct sock *sk, unsigned char type,
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
index 73a0399dc7a2..d4c9a8bbad3e 100644
--- a/net/decnet/af_decnet.c
+++ b/net/decnet/af_decnet.c
@@ -533,10 +533,6 @@ static struct sock *dn_alloc_sock(struct net *net, struct socket *sock, gfp_t gf
533 scp->keepalive = 10 * HZ; 533 scp->keepalive = 10 * HZ;
534 scp->keepalive_fxn = dn_keepalive; 534 scp->keepalive_fxn = dn_keepalive;
535 535
536 init_timer(&scp->delack_timer);
537 scp->delack_pending = 0;
538 scp->delack_fxn = dn_nsp_delayed_ack;
539
540 dn_start_slow_timer(sk); 536 dn_start_slow_timer(sk);
541out: 537out:
542 return sk; 538 return sk;
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index 4d339de56862..92dbaa3f1eae 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -1038,14 +1038,14 @@ static void dn_eth_down(struct net_device *dev)
1038 1038
1039static void dn_dev_set_timer(struct net_device *dev); 1039static void dn_dev_set_timer(struct net_device *dev);
1040 1040
1041static void dn_dev_timer_func(unsigned long arg) 1041static void dn_dev_timer_func(struct timer_list *t)
1042{ 1042{
1043 struct net_device *dev = (struct net_device *)arg; 1043 struct dn_dev *dn_db = from_timer(dn_db, t, timer);
1044 struct dn_dev *dn_db; 1044 struct net_device *dev;
1045 struct dn_ifaddr *ifa; 1045 struct dn_ifaddr *ifa;
1046 1046
1047 rcu_read_lock(); 1047 rcu_read_lock();
1048 dn_db = rcu_dereference(dev->dn_ptr); 1048 dev = dn_db->dev;
1049 if (dn_db->t3 <= dn_db->parms.t2) { 1049 if (dn_db->t3 <= dn_db->parms.t2) {
1050 if (dn_db->parms.timer3) { 1050 if (dn_db->parms.timer3) {
1051 for (ifa = rcu_dereference(dn_db->ifa_list); 1051 for (ifa = rcu_dereference(dn_db->ifa_list);
@@ -1070,8 +1070,6 @@ static void dn_dev_set_timer(struct net_device *dev)
1070 if (dn_db->parms.t2 > dn_db->parms.t3) 1070 if (dn_db->parms.t2 > dn_db->parms.t3)
1071 dn_db->parms.t2 = dn_db->parms.t3; 1071 dn_db->parms.t2 = dn_db->parms.t3;
1072 1072
1073 dn_db->timer.data = (unsigned long)dev;
1074 dn_db->timer.function = dn_dev_timer_func;
1075 dn_db->timer.expires = jiffies + (dn_db->parms.t2 * HZ); 1073 dn_db->timer.expires = jiffies + (dn_db->parms.t2 * HZ);
1076 1074
1077 add_timer(&dn_db->timer); 1075 add_timer(&dn_db->timer);
@@ -1100,7 +1098,7 @@ static struct dn_dev *dn_dev_create(struct net_device *dev, int *err)
1100 1098
1101 rcu_assign_pointer(dev->dn_ptr, dn_db); 1099 rcu_assign_pointer(dev->dn_ptr, dn_db);
1102 dn_db->dev = dev; 1100 dn_db->dev = dev;
1103 init_timer(&dn_db->timer); 1101 timer_setup(&dn_db->timer, dn_dev_timer_func, 0);
1104 1102
1105 dn_db->uptime = jiffies; 1103 dn_db->uptime = jiffies;
1106 1104
diff --git a/net/decnet/dn_nsp_out.c b/net/decnet/dn_nsp_out.c
index 66f035e476ea..e50a4adfcf7e 100644
--- a/net/decnet/dn_nsp_out.c
+++ b/net/decnet/dn_nsp_out.c
@@ -491,17 +491,6 @@ void dn_send_conn_ack (struct sock *sk)
491 dn_nsp_send(skb); 491 dn_nsp_send(skb);
492} 492}
493 493
494void dn_nsp_delayed_ack(struct sock *sk)
495{
496 struct dn_scp *scp = DN_SK(sk);
497
498 if (scp->ackxmt_oth != scp->numoth_rcv)
499 dn_nsp_send_oth_ack(sk);
500
501 if (scp->ackxmt_dat != scp->numdat_rcv)
502 dn_nsp_send_data_ack(sk);
503}
504
505static int dn_nsp_retrans_conn_conf(struct sock *sk) 494static int dn_nsp_retrans_conn_conf(struct sock *sk)
506{ 495{
507 struct dn_scp *scp = DN_SK(sk); 496 struct dn_scp *scp = DN_SK(sk);