diff options
| author | Ingo Molnar <mingo@kernel.org> | 2019-12-30 08:10:51 +0100 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2019-12-30 08:10:51 +0100 |
| commit | 28336be568bb473d16ba80db0801276fb4f1bbe5 (patch) | |
| tree | cf2d7a56e6c3ea08139d8d9a5a58b296bd172136 /include/linux/irq_work.h | |
| parent | 5cbaefe9743bf14c9d3106db0cc19f8cb0a3ca22 (diff) | |
| parent | fd6988496e79a6a4bdb514a4655d2920209eb85d (diff) | |
Merge tag 'v5.5-rc4' into locking/kcsan, to resolve conflicts
Conflicts:
init/main.c
lib/Kconfig.debug
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/irq_work.h')
| -rw-r--r-- | include/linux/irq_work.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h index b11fcdfd0770..02da997ad12c 100644 --- a/include/linux/irq_work.h +++ b/include/linux/irq_work.h @@ -22,7 +22,7 @@ #define IRQ_WORK_CLAIMED (IRQ_WORK_PENDING | IRQ_WORK_BUSY) struct irq_work { - unsigned long flags; + atomic_t flags; struct llist_node llnode; void (*func)(struct irq_work *); }; @@ -30,11 +30,15 @@ struct irq_work { static inline void init_irq_work(struct irq_work *work, void (*func)(struct irq_work *)) { - work->flags = 0; + atomic_set(&work->flags, 0); work->func = func; } -#define DEFINE_IRQ_WORK(name, _f) struct irq_work name = { .func = (_f), } +#define DEFINE_IRQ_WORK(name, _f) struct irq_work name = { \ + .flags = ATOMIC_INIT(0), \ + .func = (_f) \ +} + bool irq_work_queue(struct irq_work *work); bool irq_work_queue_on(struct irq_work *work, int cpu); |
