]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/commitdiff
timer: Switch callback prototype to take struct timer_list * argument
authorKees Cook <keescook@chromium.org>
Mon, 23 Oct 2017 02:15:40 +0000 (19:15 -0700)
committerKees Cook <keescook@chromium.org>
Tue, 21 Nov 2017 23:57:13 +0000 (15:57 -0800)
Since all callbacks have been converted, we can switch the core
prototype to "struct timer_list *" now too.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
include/linux/timer.h
kernel/time/timer.c

index 20a6e7af5fd62b8796df9d8125445b19f1fc3417..a6d04fb72c9e2eceb478042b1e1052813a02bd11 100644 (file)
@@ -17,7 +17,7 @@ struct timer_list {
         */
        struct hlist_node       entry;
        unsigned long           expires;
-       void                    (*function)(unsigned long);
+       void                    (*function)(struct timer_list *);
        u32                     flags;
 
 #ifdef CONFIG_LOCKDEP
@@ -63,7 +63,7 @@ struct timer_list {
 
 #define TIMER_TRACE_FLAGMASK   (TIMER_MIGRATING | TIMER_DEFERRABLE | TIMER_PINNED | TIMER_IRQSAFE)
 
-#define TIMER_DATA_TYPE                unsigned long
+#define TIMER_DATA_TYPE                struct timer_list *
 #define TIMER_FUNC_TYPE                void (*)(TIMER_DATA_TYPE)
 
 #define __TIMER_INITIALIZER(_function, _data, _flags) {                \
index a07eb124332f0a9e0ee49a4ee411a0a896a8e7ce..0f0d49a02d042dbf75c6d72e54a78b8cfd633a82 100644 (file)
@@ -1284,7 +1284,7 @@ int del_timer_sync(struct timer_list *timer)
 EXPORT_SYMBOL(del_timer_sync);
 #endif
 
-static void call_timer_fn(struct timer_list *timer, void (*fn)(unsigned long))
+static void call_timer_fn(struct timer_list *timer, void (*fn)(struct timer_list *))
 {
        int count = preempt_count();
 
@@ -1308,7 +1308,7 @@ static void call_timer_fn(struct timer_list *timer, void (*fn)(unsigned long))
        lock_map_acquire(&lockdep_map);
 
        trace_timer_expire_entry(timer);
-       fn((TIMER_DATA_TYPE)timer);
+       fn(timer);
        trace_timer_expire_exit(timer);
 
        lock_map_release(&lockdep_map);
@@ -1330,7 +1330,7 @@ static void expire_timers(struct timer_base *base, struct hlist_head *head)
 {
        while (!hlist_empty(head)) {
                struct timer_list *timer;
-               void (*fn)(unsigned long);
+               void (*fn)(struct timer_list *);
 
                timer = hlist_entry(head->first, struct timer_list, entry);