.. | .. |
---|
49 | 49 | */ |
---|
50 | 50 | } |
---|
51 | 51 | |
---|
| 52 | +void __weak irq_local_work_raise(void) |
---|
| 53 | +{ |
---|
| 54 | + arch_irq_work_raise(); |
---|
| 55 | +} |
---|
| 56 | + |
---|
52 | 57 | /* Enqueue on current CPU, work must already be claimed and preempt disabled */ |
---|
53 | 58 | static void __irq_work_queue_local(struct irq_work *work) |
---|
54 | 59 | { |
---|
.. | .. |
---|
56 | 61 | if (atomic_read(&work->flags) & IRQ_WORK_LAZY) { |
---|
57 | 62 | if (llist_add(&work->llnode, this_cpu_ptr(&lazy_list)) && |
---|
58 | 63 | tick_nohz_tick_stopped()) |
---|
59 | | - arch_irq_work_raise(); |
---|
| 64 | + irq_local_work_raise(); |
---|
60 | 65 | } else { |
---|
61 | 66 | if (llist_add(&work->llnode, this_cpu_ptr(&raised_list))) |
---|
62 | | - arch_irq_work_raise(); |
---|
| 67 | + irq_local_work_raise(); |
---|
63 | 68 | } |
---|
64 | 69 | } |
---|
65 | 70 | |
---|