net: LLC: Convert timers to use timer_setup()
Subsystems (3)
PATCH 1/1 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" <[email protected]>
Cc Eric Dumazet <[email protected]>
Cc Hans Liljestrand <[email protected]>
Cc "Paul E. McKenney" <[email protected]>
Cc "Reshetova, Elena" <[email protected]>
Signed-off-by Kees Cook <[email protected]>
--- include/net/llc_c_ac.h | 8 ++++---- net/llc/llc_c_ac.c | 27 +++++++++++++++++---------- net/llc/llc_conn.c | 12 ++++-------- 3 files changed, 25 insertions(+), 22 deletions(-)
include/net/llc_c_ac.h +4 -4
@@ -171,10 +171,10 @@ int llc_conn_ac_rst_sendack_flag(struct sock *sk, struct sk_buff *skb);int llc_conn_ac_send_i_rsp_as_ack (struct sock *sk,struct sk_buff *skb);int llc_conn_ac_send_i_as_ack (struct sock *sk,struct sk_buff *skb); -void llc_conn_busy_tmr_cb (unsigned long timeout_data); -void llc_conn_pf_cycle_tmr_cb (unsigned long timeout_data); -void llc_conn_ack_tmr_cb (unsigned long timeout_data); -void llc_conn_rej_tmr_cb (unsigned long timeout_data); +void llc_conn_busy_tmr_cb (struct timer_list *t); +void llc_conn_pf_cycle_tmr_cb (struct timer_list *t); +void llc_conn_ack_tmr_cb (struct timer_list *t); +void llc_conn_rej_tmr_cb (struct timer_list *t);void llc_conn_set_p_flag (struct sock *sk,u8 value);#endif /* LLC_C_AC_H */
net/llc/llc_c_ac.c +17 -10
@@ -1318,9 +1318,8 @@ static int llc_conn_ac_inc_vs_by_1(struct sock *sk, struct sk_buff *skb)return 0 ; } -static void llc_conn_tmr_common_cb (unsigned long timeout_data,u8 type) +static void llc_conn_tmr_common_cb (struct sock *sk,u8 type) { -struct sock *sk = (struct sock *)timeout_data;struct sk_buff *skb =alloc_skb (0 ,GFP_ATOMIC );bh_lock_sock (sk);
@@ -1334,24 +1333,32 @@ static void llc_conn_tmr_common_cb(unsigned long timeout_data, u8 type)bh_unlock_sock (sk); } -void llc_conn_pf_cycle_tmr_cb (unsigned long timeout_data) +void llc_conn_pf_cycle_tmr_cb (struct timer_list *t) { -llc_conn_tmr_common_cb (timeout_data,LLC_CONN_EV_TYPE_P_TMR ); +struct llc_sock *llc =from_timer (llc, t, pf_cycle_timer.timer); + +llc_conn_tmr_common_cb (&llc->sk,LLC_CONN_EV_TYPE_P_TMR ); } -void llc_conn_busy_tmr_cb (unsigned long timeout_data) +void llc_conn_busy_tmr_cb (struct timer_list *t) { -llc_conn_tmr_common_cb (timeout_data,LLC_CONN_EV_TYPE_BUSY_TMR ); +struct llc_sock *llc =from_timer (llc, t, busy_state_timer.timer); + +llc_conn_tmr_common_cb (&llc->sk,LLC_CONN_EV_TYPE_BUSY_TMR ); } -void llc_conn_ack_tmr_cb (unsigned long timeout_data) +void llc_conn_ack_tmr_cb (struct timer_list *t) { -llc_conn_tmr_common_cb (timeout_data,LLC_CONN_EV_TYPE_ACK_TMR ); +struct llc_sock *llc =from_timer (llc, t, ack_timer.timer); + +llc_conn_tmr_common_cb (&llc->sk,LLC_CONN_EV_TYPE_ACK_TMR ); } -void llc_conn_rej_tmr_cb (unsigned long timeout_data) +void llc_conn_rej_tmr_cb (struct timer_list *t) { -llc_conn_tmr_common_cb (timeout_data,LLC_CONN_EV_TYPE_REJ_TMR ); +struct llc_sock *llc =from_timer (llc, t, rej_sent_timer.timer); + +llc_conn_tmr_common_cb (&llc->sk,LLC_CONN_EV_TYPE_REJ_TMR ); }int llc_conn_ac_rst_vs (struct sock *sk,struct sk_buff *skb)
net/llc/llc_conn.c +4 -8
@@ -902,20 +902,16 @@ static void llc_sk_init(struct sock *sk) llc->inc_cntr = llc->dec_cntr =2 ; llc->dec_step = llc->connect_step =1 ; -setup_timer (&llc->ack_timer.timer, llc_conn_ack_tmr_cb, - (unsigned long )sk); +timer_setup (&llc->ack_timer.timer, llc_conn_ack_tmr_cb,0 ); llc->ack_timer.expire = sysctl_llc2_ack_timeout; -setup_timer (&llc->pf_cycle_timer.timer, llc_conn_pf_cycle_tmr_cb, - (unsigned long )sk); +timer_setup (&llc->pf_cycle_timer.timer, llc_conn_pf_cycle_tmr_cb,0 ); llc->pf_cycle_timer.expire = sysctl_llc2_p_timeout; -setup_timer (&llc->rej_sent_timer.timer, llc_conn_rej_tmr_cb, - (unsigned long )sk); +timer_setup (&llc->rej_sent_timer.timer, llc_conn_rej_tmr_cb,0 ); llc->rej_sent_timer.expire = sysctl_llc2_rej_timeout; -setup_timer (&llc->busy_state_timer.timer, llc_conn_busy_tmr_cb, - (unsigned long )sk); +timer_setup (&llc->busy_state_timer.timer, llc_conn_busy_tmr_cb,0 ); llc->busy_state_timer.expire = sysctl_llc2_busy_timeout; llc->n2 =2 ;/* max retransmit */
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security
From: Kees Cook <[email protected]>
Date: Tue, 24 Oct 2017 01:45:48 -0700
Quoted 11 lines
In preparation for unconditionally passing the struct
timer_listpointer to all timer callbacks, switch to using the newtimer_setup()andfrom_timer()to pass the timer pointer explicitly.Cc "David S. Miller" <[email protected]>Cc Eric Dumazet <[email protected]>Cc Hans Liljestrand <[email protected]>Cc "Paul E. McKenney" <[email protected]>Cc "Reshetova, Elena" <[email protected]>Signed-off-by Kees Cook <[email protected]>
Applied, thanks.