[PATCH] Char: isicom, simplify timer

Don't init timer in such complicated way. Use DEFINE_TIMER and then only
mod_timer to reset the expiration.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Jiri Slaby 2006-12-08 02:38:55 -08:00 committed by Linus Torvalds
parent 906cdecbed
commit 34b55b865e

View File

@ -173,12 +173,13 @@ static int prev_card = 3; /* start servicing isi_card[0] */
static struct tty_driver *isicom_normal;
static DECLARE_COMPLETION(isi_timerdone);
static struct timer_list tx;
static char re_schedule = 1;
static void isicom_tx(unsigned long _data);
static void isicom_start(struct tty_struct *tty);
static DEFINE_TIMER(tx, isicom_tx, 0, 0);
/* baud index mappings from linux defns to isi */
static signed char linuxb_to_isib[] = {
@ -519,13 +520,7 @@ sched_again:
return;
}
init_timer(&tx);
tx.expires = jiffies + HZ/100;
tx.data = 0;
tx.function = isicom_tx;
add_timer(&tx);
return;
mod_timer(&tx, jiffies + msecs_to_jiffies(10));
}
/* Interrupt handlers */
@ -1907,12 +1902,7 @@ static int __init isicom_init(void)
goto err_unrtty;
}
init_timer(&tx);
tx.expires = jiffies + 1;
tx.data = 0;
tx.function = isicom_tx;
re_schedule = 1;
add_timer(&tx);
mod_timer(&tx, jiffies + 1);
return 0;
err_unrtty: