hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/include/linux/irq_work.h
....@@ -3,7 +3,6 @@
33 #define _LINUX_IRQ_WORK_H
44
55 #include <linux/smp_types.h>
6
-#include <linux/rcuwait.h>
76
87 /*
98 * An entry can be in one of four states:
....@@ -23,7 +22,6 @@
2322 };
2423 };
2524 void (*func)(struct irq_work *);
26
- struct rcuwait irqwait;
2725 };
2826
2927 static inline
....@@ -31,34 +29,13 @@
3129 {
3230 atomic_set(&work->flags, 0);
3331 work->func = func;
34
- rcuwait_init(&work->irqwait);
3532 }
3633
3734 #define DEFINE_IRQ_WORK(name, _f) struct irq_work name = { \
3835 .flags = ATOMIC_INIT(0), \
39
- .func = (_f), \
40
- .irqwait = __RCUWAIT_INITIALIZER(irqwait), \
36
+ .func = (_f) \
4137 }
4238
43
-#define __IRQ_WORK_INIT(_func, _flags) (struct irq_work){ \
44
- .flags = ATOMIC_INIT(_flags), \
45
- .func = (_func), \
46
- .irqwait = __RCUWAIT_INITIALIZER(irqwait), \
47
-}
48
-
49
-#define IRQ_WORK_INIT(_func) __IRQ_WORK_INIT(_func, 0)
50
-#define IRQ_WORK_INIT_LAZY(_func) __IRQ_WORK_INIT(_func, IRQ_WORK_LAZY)
51
-#define IRQ_WORK_INIT_HARD(_func) __IRQ_WORK_INIT(_func, IRQ_WORK_HARD_IRQ)
52
-
53
-static inline bool irq_work_is_busy(struct irq_work *work)
54
-{
55
- return atomic_read(&work->flags) & IRQ_WORK_BUSY;
56
-}
57
-
58
-static inline bool irq_work_is_hard(struct irq_work *work)
59
-{
60
- return atomic_read(&work->flags) & IRQ_WORK_HARD_IRQ;
61
-}
6239
6340 bool irq_work_queue(struct irq_work *work);
6441 bool irq_work_queue_on(struct irq_work *work, int cpu);