diff options
author | Javier Martinez Canillas <javier@dowhile0.org> | 2018-02-25 23:54:28 +0100 |
---|---|---|
committer | Javier Martinez Canillas <javier@dowhile0.org> | 2018-02-25 23:54:39 +0100 |
commit | 3e267492490c0e50c67fd88dc91732bced25761f (patch) | |
tree | 1655f09bac75fc3acfd21b3f289361652cd07370 | |
parent | 4c73281fed30b754c1dca8a77e4d4bb448a683ed (diff) | |
download | ldd3-3e267492490c0e50c67fd88dc91732bced25761f.tar.gz |
tty: tiny_tty: Use timer_setup() instead of init_timer()
The init_timer() function has been deprecated, use timer_setup() instead.
Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
-rw-r--r-- | tty/tiny_tty.c | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/tty/tiny_tty.c b/tty/tiny_tty.c index a3d8e5c..7d414f6 100644 --- a/tty/tiny_tty.c +++ b/tty/tiny_tty.c @@ -46,7 +46,7 @@ struct tiny_serial { struct tty_struct *tty; /* pointer to the tty for this device */ int open_count; /* number of times this port has been opened */ struct semaphore sem; /* locks this structure */ - struct timer_list *timer; + struct timer_list timer; /* for tiocmget and tiocmset functions */ int msr; /* MSR shadow */ @@ -62,9 +62,9 @@ static struct tiny_serial *tiny_table[TINY_TTY_MINORS]; /* initially all NULL */ static struct tty_port tiny_tty_port[TINY_TTY_MINORS]; -static void tiny_timer(unsigned long timer_data) +static void tiny_timer(struct timer_list *t) { - struct tiny_serial *tiny = (struct tiny_serial *)timer_data; + struct tiny_serial *tiny = from_timer(tiny, t, timer); struct tty_struct *tty; struct tty_port *port; int i; @@ -87,14 +87,13 @@ static void tiny_timer(unsigned long timer_data) tty_flip_buffer_push(port); /* resubmit the timer again */ - tiny->timer->expires = jiffies + DELAY_TIME; - add_timer(tiny->timer); + tiny->timer.expires = jiffies + DELAY_TIME; + add_timer(&tiny->timer); } static int tiny_open(struct tty_struct *tty, struct file *file) { struct tiny_serial *tiny; - struct timer_list *timer; int index; /* initialize the pointer in case something fails */ @@ -111,7 +110,6 @@ static int tiny_open(struct tty_struct *tty, struct file *file) sema_init(&tiny->sem, 1); tiny->open_count = 0; - tiny->timer = NULL; tiny_table[index] = tiny; } @@ -128,19 +126,9 @@ static int tiny_open(struct tty_struct *tty, struct file *file) /* do any hardware initialization needed here */ /* create our timer and submit it */ - if (!tiny->timer) { - timer = kmalloc(sizeof(*timer), GFP_KERNEL); - if (!timer) { - up(&tiny->sem); - return -ENOMEM; - } - tiny->timer = timer; - } - tiny->timer->data = (unsigned long)tiny; - tiny->timer->expires = jiffies + DELAY_TIME; - tiny->timer->function = tiny_timer; - init_timer(tiny->timer); - add_timer(tiny->timer); + timer_setup(&tiny->timer, tiny_timer, 0); + tiny->timer.expires = jiffies + DELAY_TIME; + add_timer(&tiny->timer); } up(&tiny->sem); @@ -162,7 +150,7 @@ static void do_close(struct tiny_serial *tiny) /* Do any hardware specific stuff here */ /* shut down our timer */ - del_timer(tiny->timer); + del_timer(&tiny->timer); } exit: up(&tiny->sem); @@ -584,8 +572,7 @@ static void __exit tiny_exit(void) do_close(tiny); /* shut down our timer and free the memory */ - del_timer(tiny->timer); - kfree(tiny->timer); + del_timer(&tiny->timer); kfree(tiny); tiny_table[i] = NULL; } |