@@ -272,7 +272,7 @@ struct gsm_mux {
272272 struct list_head tx_data_list ; /* Pending data packets */
273273
274274 /* Control messages */
275- struct delayed_work kick_timeout ; /* Kick TX queuing on timeout */
275+ struct timer_list kick_timer ; /* Kick TX queuing on timeout */
276276 struct timer_list t2_timer ; /* Retransmit timer for commands */
277277 int cretries ; /* Command retry counter */
278278 struct gsm_control * pending_cmd ;/* Our current pending command */
@@ -1029,7 +1029,7 @@ static void __gsm_data_queue(struct gsm_dlci *dlci, struct gsm_msg *msg)
10291029 gsm -> tx_bytes += msg -> len ;
10301030
10311031 gsmld_write_trigger (gsm );
1032- schedule_delayed_work (& gsm -> kick_timeout , 10 * gsm -> t1 * HZ / 100 );
1032+ mod_timer (& gsm -> kick_timer , jiffies + 10 * gsm -> t1 * HZ / 100 );
10331033}
10341034
10351035/**
@@ -2022,16 +2022,16 @@ static void gsm_dlci_command(struct gsm_dlci *dlci, const u8 *data, int len)
20222022}
20232023
20242024/**
2025- * gsm_kick_timeout - transmit if possible
2026- * @work: work contained in our gsm object
2025+ * gsm_kick_timer - transmit if possible
2026+ * @t: timer contained in our gsm object
20272027 *
20282028 * Transmit data from DLCIs if the queue is empty. We can't rely on
20292029 * a tty wakeup except when we filled the pipe so we need to fire off
20302030 * new data ourselves in other cases.
20312031 */
2032- static void gsm_kick_timeout (struct work_struct * work )
2032+ static void gsm_kick_timer (struct timer_list * t )
20332033{
2034- struct gsm_mux * gsm = container_of ( work , struct gsm_mux , kick_timeout . work );
2034+ struct gsm_mux * gsm = from_timer ( gsm , t , kick_timer );
20352035 unsigned long flags ;
20362036 int sent = 0 ;
20372037
@@ -2496,7 +2496,7 @@ static void gsm_cleanup_mux(struct gsm_mux *gsm, bool disc)
24962496 }
24972497
24982498 /* Finish outstanding timers, making sure they are done */
2499- cancel_delayed_work_sync (& gsm -> kick_timeout );
2499+ del_timer_sync (& gsm -> kick_timer );
25002500 del_timer_sync (& gsm -> t2_timer );
25012501
25022502 /* Finish writing to ldisc */
@@ -2643,7 +2643,7 @@ static struct gsm_mux *gsm_alloc_mux(void)
26432643 kref_init (& gsm -> ref );
26442644 INIT_LIST_HEAD (& gsm -> tx_ctrl_list );
26452645 INIT_LIST_HEAD (& gsm -> tx_data_list );
2646- INIT_DELAYED_WORK (& gsm -> kick_timeout , gsm_kick_timeout );
2646+ timer_setup (& gsm -> kick_timer , gsm_kick_timer , 0 );
26472647 timer_setup (& gsm -> t2_timer , gsm_control_retransmit , 0 );
26482648 INIT_WORK (& gsm -> tx_work , gsmld_write_task );
26492649 init_waitqueue_head (& gsm -> event );
0 commit comments