diff options
| -rw-r--r-- | arch/x86/kernel/hpet.c | 2 | ||||
| -rw-r--r-- | include/linux/workqueue.h | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index cd759ad90690..bb2e0f0975ae 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
| @@ -628,7 +628,7 @@ static int hpet_cpuhp_notify(struct notifier_block *n, | |||
| 628 | 628 | ||
| 629 | switch (action & 0xf) { | 629 | switch (action & 0xf) { |
| 630 | case CPU_ONLINE: | 630 | case CPU_ONLINE: |
| 631 | INIT_DELAYED_WORK(&work.work, hpet_work); | 631 | INIT_DELAYED_WORK_ON_STACK(&work.work, hpet_work); |
| 632 | init_completion(&work.complete); | 632 | init_completion(&work.complete); |
| 633 | /* FIXME: add schedule_work_on() */ | 633 | /* FIXME: add schedule_work_on() */ |
| 634 | schedule_delayed_work_on(cpu, &work.work, 0); | 634 | schedule_delayed_work_on(cpu, &work.work, 0); |
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index b36291130f22..47151c8495aa 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h | |||
| @@ -118,6 +118,12 @@ struct execute_work { | |||
| 118 | init_timer(&(_work)->timer); \ | 118 | init_timer(&(_work)->timer); \ |
| 119 | } while (0) | 119 | } while (0) |
| 120 | 120 | ||
| 121 | #define INIT_DELAYED_WORK_ON_STACK(_work, _func) \ | ||
| 122 | do { \ | ||
| 123 | INIT_WORK(&(_work)->work, (_func)); \ | ||
| 124 | init_timer_on_stack(&(_work)->timer); \ | ||
| 125 | } while (0) | ||
| 126 | |||
| 121 | #define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \ | 127 | #define INIT_DELAYED_WORK_DEFERRABLE(_work, _func) \ |
| 122 | do { \ | 128 | do { \ |
| 123 | INIT_WORK(&(_work)->work, (_func)); \ | 129 | INIT_WORK(&(_work)->work, (_func)); \ |
