Acked-by: mark gross <mark.gross@xxxxxxxxx> --mark > -----Original Message----- > From: Kees Cook [mailto:keescook@xxxxxxxxxxxx] > Sent: Wednesday, October 4, 2017 4:27 PM > To: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Kees Cook <keescook@xxxxxxxxxxxx>; Arnd Bergmann <arnd@xxxxxxxx>; > Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>; Gross, Mark > <mark.gross@xxxxxxxxx>; Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>; > Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>; Chris Metcalf > <cmetcalf@xxxxxxxxxxxx>; Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>; > Guenter Roeck <linux@xxxxxxxxxxxx>; Harish Patil <harish.patil@xxxxxxxxxx>; > Heiko Carstens <heiko.carstens@xxxxxxxxxx>; James E.J. Bottomley > <jejb@xxxxxxxxxxxxxxxxxx>; John Stultz <john.stultz@xxxxxxxxxx>; Julian > Wiedmann <jwi@xxxxxxxxxxxxxxxxxx>; Kalle Valo <kvalo@xxxxxxxxxxxxxxxx>; > Lai Jiangshan <jiangshanlai@xxxxxxxxx>; Brown, Len <len.brown@xxxxxxxxx>; > Manish Chopra <manish.chopra@xxxxxxxxxx>; Martin K. Petersen > <martin.petersen@xxxxxxxxxx>; Martin Schwidefsky > <schwidefsky@xxxxxxxxxx>; Michael Ellerman <mpe@xxxxxxxxxxxxxx>; Michael > Reed <mdr@xxxxxxx>; netdev@xxxxxxxxxxxxxxx; Oleg Nesterov > <oleg@xxxxxxxxxx>; Paul Mackerras <paulus@xxxxxxxxx>; Pavel Machek > <pavel@xxxxxx>; Petr Mladek <pmladek@xxxxxxxx>; Rafael J. Wysocki > <rjw@xxxxxxxxxxxxx>; Ralf Baechle <ralf@xxxxxxxxxxxxxx>; Sebastian Reichel > <sre@xxxxxxxxxx>; Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>; Stephen Boyd > <sboyd@xxxxxxxxxxxxxx>; Sudip Mukherjee <sudipm.mukherjee@xxxxxxxxx>; > Tejun Heo <tj@xxxxxxxxxx>; Ursula Braun <ubraun@xxxxxxxxxxxxxxxxxx>; Viresh > Kumar <viresh.kumar@xxxxxxxxxx>; Wim Van Sebroeck <wim@xxxxxxxxx>; > linux1394-devel@xxxxxxxxxxxxxxxxxxxxx; linux-mips@xxxxxxxxxxxxxx; linux- > pm@xxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx; linux- > s390@xxxxxxxxxxxxxxx; linux-scsi@xxxxxxxxxxxxxxx; linux- > watchdog@xxxxxxxxxxxxxxx; linux-wireless@xxxxxxxxxxxxxxx; linux- > kernel@xxxxxxxxxxxxxxx > Subject: [PATCH 07/13] timer: Remove last user of TIMER_INITIALIZER > > Drops the last user of TIMER_INITIALIZER and adapts timer.h to use the internal > version. > > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: Mark Gross <mark.gross@xxxxxxxxx> > Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx> > --- > drivers/char/tlclk.c | 12 +++++------- include/linux/timer.h | 2 +- > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index > 6210bff46341..8eeb4190207d 100644 > --- a/drivers/char/tlclk.c > +++ b/drivers/char/tlclk.c > @@ -184,9 +184,8 @@ static unsigned int telclk_interrupt; > static int int_events; /* Event that generate a interrupt */ > static int got_event; /* if events processing have been done */ > > -static void switchover_timeout(unsigned long data); -static struct timer_list > switchover_timer = > - TIMER_INITIALIZER(switchover_timeout , 0, 0); > +static void switchover_timeout(struct timer_list *t); static struct > +timer_list switchover_timer; > static unsigned long tlclk_timer_data; > > static struct tlclk_alarms *alarm_events; @@ -805,7 +804,7 @@ static int > __init tlclk_init(void) > goto out3; > } > > - init_timer(&switchover_timer); > + timer_setup(&switchover_timer, switchover_timeout, 0); > > ret = misc_register(&tlclk_miscdev); > if (ret < 0) { > @@ -855,9 +854,9 @@ static void __exit tlclk_cleanup(void) > > } > > -static void switchover_timeout(unsigned long data) > +static void switchover_timeout(struct timer_list *unused) > { > - unsigned long flags = *(unsigned long *) data; > + unsigned long flags = tlclk_timer_data; > > if ((flags & 1)) { > if ((inb(TLCLK_REG1) & 0x08) != (flags & 0x08)) @@ -922,7 > +921,6 @@ static irqreturn_t tlclk_interrupt(int irq, void *dev_id) > /* TIMEOUT in ~10ms */ > switchover_timer.expires = jiffies + msecs_to_jiffies(10); > tlclk_timer_data = inb(TLCLK_REG1); > - switchover_timer.data = (unsigned long) &tlclk_timer_data; > mod_timer(&switchover_timer, switchover_timer.expires); > } else { > got_event = 1; > diff --git a/include/linux/timer.h b/include/linux/timer.h index > 10cc45ca5803..4f7476e4a727 100644 > --- a/include/linux/timer.h > +++ b/include/linux/timer.h > @@ -87,7 +87,7 @@ struct timer_list { > > #define DEFINE_TIMER(_name, _function, _expires, _data) \ > struct timer_list _name = \ > - TIMER_INITIALIZER(_function, _expires, _data) > + __TIMER_INITIALIZER(_function, _expires, _data, 0) > > void init_timer_key(struct timer_list *timer, unsigned int flags, > const char *name, struct lock_class_key *key); > -- > 2.7.4