diff options
author | Dominik Sliwa <dominik.sliwa@toradex.com> | 2017-07-02 16:41:37 +0200 |
---|---|---|
committer | Dominik Sliwa <dominik.sliwa@toradex.com> | 2017-07-02 16:41:37 +0200 |
commit | 52409fae3e4b8d16b68b61902fc09075cd97b75d (patch) | |
tree | e67110145c5843b3f199d872ae285e2546c9ebe2 /backport-include/linux/workqueue.h |
Backports generated from 4.11 kernel
Initial commit.
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Diffstat (limited to 'backport-include/linux/workqueue.h')
-rw-r--r-- | backport-include/linux/workqueue.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/backport-include/linux/workqueue.h b/backport-include/linux/workqueue.h new file mode 100644 index 0000000..ab68d21 --- /dev/null +++ b/backport-include/linux/workqueue.h @@ -0,0 +1,67 @@ +#ifndef __BACKPORT_LINUX_WORKQUEUE_H +#define __BACKPORT_LINUX_WORKQUEUE_H +#include_next <linux/workqueue.h> +#include <linux/version.h> + +#if LINUX_VERSION_IS_LESS(3,7,0) +#define mod_delayed_work LINUX_BACKPORT(mod_delayed_work) +bool mod_delayed_work(struct workqueue_struct *wq, struct delayed_work *dwork, + unsigned long delay); +#endif + +#ifndef create_freezable_workqueue +/* note freez_a_ble -> freez_ea_able */ +#define create_freezable_workqueue create_freezeable_workqueue +#endif + +#if LINUX_VERSION_IS_LESS(3,3,0) +#define __WQ_ORDERED 0 +/* + * commit b196be89cdc14a88cc637cdad845a75c5886c82d + * Author: Tejun Heo <tj@kernel.org> + * Date: Tue Jan 10 15:11:35 2012 -0800 + * + * workqueue: make alloc_workqueue() take printf fmt and args for name + */ +struct workqueue_struct * +backport_alloc_workqueue(const char *fmt, unsigned int flags, + int max_active, struct lock_class_key *key, + const char *lock_name, ...); +#undef alloc_workqueue +#ifdef CONFIG_LOCKDEP +#define alloc_workqueue(fmt, flags, max_active, args...) \ +({ \ + static struct lock_class_key __key; \ + const char *__lock_name; \ + \ + if (__builtin_constant_p(fmt)) \ + __lock_name = (fmt); \ + else \ + __lock_name = #fmt; \ + \ + backport_alloc_workqueue((fmt), (flags), (max_active), \ + &__key, __lock_name, ##args); \ +}) +#else +#define alloc_workqueue(fmt, flags, max_active, args...) \ + backport_alloc_workqueue((fmt), (flags), (max_active), \ + NULL, NULL, ##args) +#endif +#undef alloc_ordered_workqueue +#define alloc_ordered_workqueue(fmt, flags, args...) \ + alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args) +#define destroy_workqueue backport_destroy_workqueue +void backport_destroy_workqueue(struct workqueue_struct *wq); +#endif + +#if LINUX_VERSION_IS_LESS(3,11,0) +/* power efficient workqueues were added in commit 0668106ca386. */ +#define system_power_efficient_wq system_wq +#define system_freezable_power_efficient_wq system_freezable_wq +#endif + +#if LINUX_VERSION_IS_LESS(3,1,0) +#define drain_workqueue(wq) flush_workqueue(wq) +#endif + +#endif /* __BACKPORT_LINUX_WORKQUEUE_H */ |