net: sctp: Convert timers to use timer_setup()
Subsystems (3)
PATCH 1/1 net: sctp: 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 Vlad Yasevich <[email protected]>
Cc Neil Horman <[email protected]>
Cc "David S. Miller" <[email protected]>
Signed-off-by Kees Cook <[email protected]>
--- include/net/sctp/sm.h | 10 +++--- net/sctp/associola.c | 3 +- net/sctp/protocol.c | 7 ++-- net/sctp/sm_sideeffect.c | 85 +++++++++++++++++++++++++++++------------------- net/sctp/transport.c | 13 +++----- 5 files changed, 66 insertions(+), 52 deletions(-)
include/net/sctp/sm.h +5 -5
@@ -72,7 +72,7 @@ typedef enum sctp_disposition (sctp_state_fn_t) (const union sctp_subtype type, void *arg, struct sctp_cmd_seq *commands); -typedef void (sctp_timer_event_t ) (unsigned long ); +typedef void (sctp_timer_event_t ) (struct timer_list *);struct sctp_sm_table_entry {sctp_state_fn_t *fn;const char *name;
@@ -314,10 +314,10 @@ int sctp_do_sm(struct net *net, enum sctp_event event_type, void *event_arg, gfp_t gfp);/* 2nd level prototypes */ -void sctp_generate_t3_rtx_event (unsigned long peer); -void sctp_generate_heartbeat_event (unsigned long peer); -void sctp_generate_reconf_event (unsigned long peer); -void sctp_generate_proto_unreach_event (unsigned long peer); +void sctp_generate_t3_rtx_event (struct timer_list *t); +void sctp_generate_heartbeat_event (struct timer_list *t); +void sctp_generate_reconf_event (struct timer_list *t); +void sctp_generate_proto_unreach_event (struct timer_list *t);void sctp_ootb_pkt_free (struct sctp_packet *packet);
net/sctp/associola.c +1 -2
@@ -149,8 +149,7 @@ static struct sctp_association *sctp_association_init(/* Initializes the timers */ for (i =SCTP_EVENT_TIMEOUT_NONE ; i <SCTP_NUM_TIMEOUT_TYPES ; ++i) -setup_timer (&asoc->timers[i], sctp_timer_events[i], - (unsigned long )asoc); +timer_setup (&asoc->timers[i], sctp_timer_events[i],0 );/* Pull default initialization values from the sock options. * Note: This assumes that the values have already been
net/sctp/protocol.c +3 -4
@@ -622,9 +622,9 @@ static void sctp_v4_ecn_capable(struct sock *sk)INET_ECN_xmit (sk); } -static void sctp_addr_wq_timeout_handler (unsigned long arg) +static void sctp_addr_wq_timeout_handler (struct timer_list *t) { -struct net *net = (struct net *)arg; +struct net *net =from_timer (net, t, sctp.addr_wq_timer);struct sctp_sockaddr_entry *addrw, *temp;struct sctp_sock *sp;
@@ -1304,8 +1304,7 @@ static int __net_init sctp_defaults_init(struct net *net)INIT_LIST_HEAD (&net->sctp.auto_asconf_splist);spin_lock_init (&net->sctp.addr_wq_lock); net->sctp.addr_wq_timer.expires =0 ; -setup_timer (&net->sctp.addr_wq_timer, sctp_addr_wq_timeout_handler, - (unsigned long )net); +timer_setup (&net->sctp.addr_wq_timer, sctp_addr_wq_timeout_handler,0 );return 0 ;
net/sctp/sm_sideeffect.c +41 -33
142 lines not on this page · raw message
net/sctp/transport.c +5 -8
@@ -87,14 +87,11 @@ static struct sctp_transport *sctp_transport_init(struct net *net,INIT_LIST_HEAD (&peer->send_ready);INIT_LIST_HEAD (&peer->transports); -setup_timer (&peer->T3_rtx_timer, sctp_generate_t3_rtx_event, - (unsigned long )peer); -setup_timer (&peer->hb_timer, sctp_generate_heartbeat_event, - (unsigned long )peer); -setup_timer (&peer->reconf_timer, sctp_generate_reconf_event, - (unsigned long )peer); -setup_timer (&peer->proto_unreach_timer, - sctp_generate_proto_unreach_event, (unsigned long )peer); +timer_setup (&peer->T3_rtx_timer, sctp_generate_t3_rtx_event,0 ); +timer_setup (&peer->hb_timer, sctp_generate_heartbeat_event,0 ); +timer_setup (&peer->reconf_timer, sctp_generate_reconf_event,0 ); +timer_setup (&peer->proto_unreach_timer, + sctp_generate_proto_unreach_event,0 );/* Initialize the 64-bit random nonce sent with heartbeat. */ get_random_bytes (&peer->hb_nonce,sizeof (peer->hb_nonce));
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security
From: Kees Cook <[email protected]>
Date: Tue, 24 Oct 2017 01:45:31 -0700
Quoted 10 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 Vlad Yasevich <[email protected]>Cc Neil Horman <[email protected]>Cc "David S. Miller" <[email protected]>Signed-off-by Kees Cook <[email protected]>
Applied.