|
@@ -75,7 +75,7 @@ extern int tsk_fork_get_node(struct task_struct *tsk);
|
|
*/
|
|
*/
|
|
struct kthread_work;
|
|
struct kthread_work;
|
|
typedef void (*kthread_work_func_t)(struct kthread_work *work);
|
|
typedef void (*kthread_work_func_t)(struct kthread_work *work);
|
|
-void kthread_delayed_work_timer_fn(unsigned long __data);
|
|
|
|
|
|
+void kthread_delayed_work_timer_fn(struct timer_list *t);
|
|
|
|
|
|
enum {
|
|
enum {
|
|
KTW_FREEZABLE = 1 << 0, /* freeze during suspend */
|
|
KTW_FREEZABLE = 1 << 0, /* freeze during suspend */
|
|
@@ -116,8 +116,8 @@ struct kthread_delayed_work {
|
|
|
|
|
|
#define KTHREAD_DELAYED_WORK_INIT(dwork, fn) { \
|
|
#define KTHREAD_DELAYED_WORK_INIT(dwork, fn) { \
|
|
.work = KTHREAD_WORK_INIT((dwork).work, (fn)), \
|
|
.work = KTHREAD_WORK_INIT((dwork).work, (fn)), \
|
|
- .timer = __TIMER_INITIALIZER(kthread_delayed_work_timer_fn, \
|
|
|
|
- (unsigned long)&(dwork), \
|
|
|
|
|
|
+ .timer = __TIMER_INITIALIZER((TIMER_FUNC_TYPE)kthread_delayed_work_timer_fn,\
|
|
|
|
+ (TIMER_DATA_TYPE)&(dwork.timer), \
|
|
TIMER_IRQSAFE), \
|
|
TIMER_IRQSAFE), \
|
|
}
|
|
}
|
|
|
|
|
|
@@ -164,8 +164,8 @@ extern void __kthread_init_worker(struct kthread_worker *worker,
|
|
do { \
|
|
do { \
|
|
kthread_init_work(&(dwork)->work, (fn)); \
|
|
kthread_init_work(&(dwork)->work, (fn)); \
|
|
__setup_timer(&(dwork)->timer, \
|
|
__setup_timer(&(dwork)->timer, \
|
|
- kthread_delayed_work_timer_fn, \
|
|
|
|
- (unsigned long)(dwork), \
|
|
|
|
|
|
+ (TIMER_FUNC_TYPE)kthread_delayed_work_timer_fn,\
|
|
|
|
+ (TIMER_DATA_TYPE)&(dwork)->timer, \
|
|
TIMER_IRQSAFE); \
|
|
TIMER_IRQSAFE); \
|
|
} while (0)
|
|
} while (0)
|
|
|
|
|