| .. | .. |
|---|
| 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 | |
|---|