Blame view
drivers/edac/wq.c
782 Bytes
81f7e3824
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
#include "edac_module.h" static struct workqueue_struct *wq; bool edac_queue_work(struct delayed_work *work, unsigned long delay) { return queue_delayed_work(wq, work, delay); } EXPORT_SYMBOL_GPL(edac_queue_work); bool edac_mod_work(struct delayed_work *work, unsigned long delay) { return mod_delayed_work(wq, work, delay); } EXPORT_SYMBOL_GPL(edac_mod_work); bool edac_stop_work(struct delayed_work *work) { bool ret; ret = cancel_delayed_work_sync(work); flush_workqueue(wq); return ret; } EXPORT_SYMBOL_GPL(edac_stop_work); int edac_workqueue_setup(void) { wq = alloc_ordered_workqueue("edac-poller", WQ_MEM_RECLAIM); if (!wq) return -ENODEV; else return 0; } void edac_workqueue_teardown(void) { flush_workqueue(wq); destroy_workqueue(wq); wq = NULL; } |