#define KTHREAD_DELAYED_WORK_INIT(dwork, fn) {                         \
        .work = KTHREAD_WORK_INIT((dwork).work, (fn)),                  \
        .timer = __TIMER_INITIALIZER(kthread_delayed_work_timer_fn,     \
-                                    0, (unsigned long)&(dwork),        \
+                                    (unsigned long)&(dwork),           \
                                     TIMER_IRQSAFE),                    \
        }
 
 
 
 #define TIMER_TRACE_FLAGMASK   (TIMER_MIGRATING | TIMER_DEFERRABLE | TIMER_PINNED | TIMER_IRQSAFE)
 
-#define __TIMER_INITIALIZER(_function, _expires, _data, _flags) { \
+#define __TIMER_INITIALIZER(_function, _data, _flags) {                \
                .entry = { .next = TIMER_ENTRY_STATIC },        \
                .function = (_function),                        \
-               .expires = (_expires),                          \
                .data = (_data),                                \
                .flags = (_flags),                              \
                __TIMER_LOCKDEP_MAP_INITIALIZER(                \
 
 #define DEFINE_TIMER(_name, _function)                         \
        struct timer_list _name =                               \
-               __TIMER_INITIALIZER(_function, 0, 0, 0)
+               __TIMER_INITIALIZER(_function, 0, 0)
 
 void init_timer_key(struct timer_list *timer, unsigned int flags,
                    const char *name, struct lock_class_key *key);
 
 #define __DELAYED_WORK_INITIALIZER(n, f, tflags) {                     \
        .work = __WORK_INITIALIZER((n).work, (f)),                      \
        .timer = __TIMER_INITIALIZER(delayed_work_timer_fn,             \
-                                    0, (unsigned long)&(n),            \
+                                    (unsigned long)&(n),               \
                                     (tflags) | TIMER_IRQSAFE),         \
        }