diff options
author | Kees Cook <keescook@chromium.org> | 2017-10-24 04:45:48 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-24 23:06:25 -0400 |
commit | fc8bcaa05160528d56432e4612f522e3ceafc513 (patch) | |
tree | 7818ac4c54e21a8e4f869e9d9d255743a43b283e /net/llc | |
parent | 8dbd05ff5c4e50a3e5b1ed4089c2d0b4210379c6 (diff) |
net: LLC: 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: Eric Dumazet <edumazet@google.com>
Cc: Hans Liljestrand <ishkamiel@gmail.com>
Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Cc: "Reshetova, Elena" <elena.reshetova@intel.com>
Cc: netdev@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/llc')
-rw-r--r-- | net/llc/llc_c_ac.c | 27 | ||||
-rw-r--r-- | net/llc/llc_conn.c | 12 |
2 files changed, 21 insertions, 18 deletions
diff --git a/net/llc/llc_c_ac.c b/net/llc/llc_c_ac.c index ea225bd2672c..f59648018060 100644 --- a/net/llc/llc_c_ac.c +++ b/net/llc/llc_c_ac.c | |||
@@ -1318,9 +1318,8 @@ static int llc_conn_ac_inc_vs_by_1(struct sock *sk, struct sk_buff *skb) | |||
1318 | return 0; | 1318 | return 0; |
1319 | } | 1319 | } |
1320 | 1320 | ||
1321 | static void llc_conn_tmr_common_cb(unsigned long timeout_data, u8 type) | 1321 | static void llc_conn_tmr_common_cb(struct sock *sk, u8 type) |
1322 | { | 1322 | { |
1323 | struct sock *sk = (struct sock *)timeout_data; | ||
1324 | struct sk_buff *skb = alloc_skb(0, GFP_ATOMIC); | 1323 | struct sk_buff *skb = alloc_skb(0, GFP_ATOMIC); |
1325 | 1324 | ||
1326 | bh_lock_sock(sk); | 1325 | bh_lock_sock(sk); |
@@ -1334,24 +1333,32 @@ static void llc_conn_tmr_common_cb(unsigned long timeout_data, u8 type) | |||
1334 | bh_unlock_sock(sk); | 1333 | bh_unlock_sock(sk); |
1335 | } | 1334 | } |
1336 | 1335 | ||
1337 | void llc_conn_pf_cycle_tmr_cb(unsigned long timeout_data) | 1336 | void llc_conn_pf_cycle_tmr_cb(struct timer_list *t) |
1338 | { | 1337 | { |
1339 | llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_P_TMR); | 1338 | struct llc_sock *llc = from_timer(llc, t, pf_cycle_timer.timer); |
1339 | |||
1340 | llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_P_TMR); | ||
1340 | } | 1341 | } |
1341 | 1342 | ||
1342 | void llc_conn_busy_tmr_cb(unsigned long timeout_data) | 1343 | void llc_conn_busy_tmr_cb(struct timer_list *t) |
1343 | { | 1344 | { |
1344 | llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_BUSY_TMR); | 1345 | struct llc_sock *llc = from_timer(llc, t, busy_state_timer.timer); |
1346 | |||
1347 | llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_BUSY_TMR); | ||
1345 | } | 1348 | } |
1346 | 1349 | ||
1347 | void llc_conn_ack_tmr_cb(unsigned long timeout_data) | 1350 | void llc_conn_ack_tmr_cb(struct timer_list *t) |
1348 | { | 1351 | { |
1349 | llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_ACK_TMR); | 1352 | struct llc_sock *llc = from_timer(llc, t, ack_timer.timer); |
1353 | |||
1354 | llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_ACK_TMR); | ||
1350 | } | 1355 | } |
1351 | 1356 | ||
1352 | void llc_conn_rej_tmr_cb(unsigned long timeout_data) | 1357 | void llc_conn_rej_tmr_cb(struct timer_list *t) |
1353 | { | 1358 | { |
1354 | llc_conn_tmr_common_cb(timeout_data, LLC_CONN_EV_TYPE_REJ_TMR); | 1359 | struct llc_sock *llc = from_timer(llc, t, rej_sent_timer.timer); |
1360 | |||
1361 | llc_conn_tmr_common_cb(&llc->sk, LLC_CONN_EV_TYPE_REJ_TMR); | ||
1355 | } | 1362 | } |
1356 | 1363 | ||
1357 | int llc_conn_ac_rst_vs(struct sock *sk, struct sk_buff *skb) | 1364 | int llc_conn_ac_rst_vs(struct sock *sk, struct sk_buff *skb) |
diff --git a/net/llc/llc_conn.c b/net/llc/llc_conn.c index 5e91b47f0d2a..9177dbb16dce 100644 --- a/net/llc/llc_conn.c +++ b/net/llc/llc_conn.c | |||
@@ -902,20 +902,16 @@ static void llc_sk_init(struct sock *sk) | |||
902 | llc->inc_cntr = llc->dec_cntr = 2; | 902 | llc->inc_cntr = llc->dec_cntr = 2; |
903 | llc->dec_step = llc->connect_step = 1; | 903 | llc->dec_step = llc->connect_step = 1; |
904 | 904 | ||
905 | setup_timer(&llc->ack_timer.timer, llc_conn_ack_tmr_cb, | 905 | timer_setup(&llc->ack_timer.timer, llc_conn_ack_tmr_cb, 0); |
906 | (unsigned long)sk); | ||
907 | llc->ack_timer.expire = sysctl_llc2_ack_timeout; | 906 | llc->ack_timer.expire = sysctl_llc2_ack_timeout; |
908 | 907 | ||
909 | setup_timer(&llc->pf_cycle_timer.timer, llc_conn_pf_cycle_tmr_cb, | 908 | timer_setup(&llc->pf_cycle_timer.timer, llc_conn_pf_cycle_tmr_cb, 0); |
910 | (unsigned long)sk); | ||
911 | llc->pf_cycle_timer.expire = sysctl_llc2_p_timeout; | 909 | llc->pf_cycle_timer.expire = sysctl_llc2_p_timeout; |
912 | 910 | ||
913 | setup_timer(&llc->rej_sent_timer.timer, llc_conn_rej_tmr_cb, | 911 | timer_setup(&llc->rej_sent_timer.timer, llc_conn_rej_tmr_cb, 0); |
914 | (unsigned long)sk); | ||
915 | llc->rej_sent_timer.expire = sysctl_llc2_rej_timeout; | 912 | llc->rej_sent_timer.expire = sysctl_llc2_rej_timeout; |
916 | 913 | ||
917 | setup_timer(&llc->busy_state_timer.timer, llc_conn_busy_tmr_cb, | 914 | timer_setup(&llc->busy_state_timer.timer, llc_conn_busy_tmr_cb, 0); |
918 | (unsigned long)sk); | ||
919 | llc->busy_state_timer.expire = sysctl_llc2_busy_timeout; | 915 | llc->busy_state_timer.expire = sysctl_llc2_busy_timeout; |
920 | 916 | ||
921 | llc->n2 = 2; /* max retransmit */ | 917 | llc->n2 = 2; /* max retransmit */ |