timer: Prepare to change all DEFINE_TIMER() callbacks
Before we can globally change the function prototype of all timer callbacks, we have to change those set up by DEFINE_TIMER(). Prepare for this by casting the callbacks until the prototype changes globally. Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
parent
8ef81c6548
commit
3653bc95bc
|
@ -63,6 +63,9 @@ struct timer_list {
|
||||||
|
|
||||||
#define TIMER_TRACE_FLAGMASK (TIMER_MIGRATING | TIMER_DEFERRABLE | TIMER_PINNED | TIMER_IRQSAFE)
|
#define TIMER_TRACE_FLAGMASK (TIMER_MIGRATING | TIMER_DEFERRABLE | TIMER_PINNED | TIMER_IRQSAFE)
|
||||||
|
|
||||||
|
#define TIMER_DATA_TYPE unsigned long
|
||||||
|
#define TIMER_FUNC_TYPE void (*)(TIMER_DATA_TYPE)
|
||||||
|
|
||||||
#define __TIMER_INITIALIZER(_function, _data, _flags) { \
|
#define __TIMER_INITIALIZER(_function, _data, _flags) { \
|
||||||
.entry = { .next = TIMER_ENTRY_STATIC }, \
|
.entry = { .next = TIMER_ENTRY_STATIC }, \
|
||||||
.function = (_function), \
|
.function = (_function), \
|
||||||
|
@ -74,7 +77,7 @@ struct timer_list {
|
||||||
|
|
||||||
#define DEFINE_TIMER(_name, _function) \
|
#define DEFINE_TIMER(_name, _function) \
|
||||||
struct timer_list _name = \
|
struct timer_list _name = \
|
||||||
__TIMER_INITIALIZER(_function, 0, 0)
|
__TIMER_INITIALIZER((TIMER_FUNC_TYPE)_function, 0, 0)
|
||||||
|
|
||||||
void init_timer_key(struct timer_list *timer, unsigned int flags,
|
void init_timer_key(struct timer_list *timer, unsigned int flags,
|
||||||
const char *name, struct lock_class_key *key);
|
const char *name, struct lock_class_key *key);
|
||||||
|
@ -147,9 +150,6 @@ static inline void init_timer_on_stack_key(struct timer_list *timer,
|
||||||
#define setup_pinned_deferrable_timer_on_stack(timer, fn, data) \
|
#define setup_pinned_deferrable_timer_on_stack(timer, fn, data) \
|
||||||
__setup_timer_on_stack((timer), (fn), (data), TIMER_DEFERRABLE | TIMER_PINNED)
|
__setup_timer_on_stack((timer), (fn), (data), TIMER_DEFERRABLE | TIMER_PINNED)
|
||||||
|
|
||||||
#define TIMER_DATA_TYPE unsigned long
|
|
||||||
#define TIMER_FUNC_TYPE void (*)(TIMER_DATA_TYPE)
|
|
||||||
|
|
||||||
#ifndef CONFIG_LOCKDEP
|
#ifndef CONFIG_LOCKDEP
|
||||||
static inline void timer_setup(struct timer_list *timer,
|
static inline void timer_setup(struct timer_list *timer,
|
||||||
void (*callback)(struct timer_list *),
|
void (*callback)(struct timer_list *),
|
||||||
|
|
Loading…
Reference in New Issue