Lines Matching refs:action
52 static void warn_no_thread(unsigned int irq, struct irqaction *action) in warn_no_thread() argument
54 if (test_and_set_bit(IRQTF_WARNED, &action->thread_flags)) in warn_no_thread()
58 "but no thread function available.", irq, action->name); in warn_no_thread()
61 void __irq_wake_thread(struct irq_desc *desc, struct irqaction *action) in __irq_wake_thread() argument
68 if (action->thread->flags & PF_EXITING) in __irq_wake_thread()
75 if (test_and_set_bit(IRQTF_RUNTHREAD, &action->thread_flags)) in __irq_wake_thread()
123 desc->threads_oneshot |= action->thread_mask; in __irq_wake_thread()
136 wake_up_process(action->thread); in __irq_wake_thread()
166 const struct irqaction *action) in irqhandler_duration_check() argument
172 smp_processor_id(), irq, action->handler, in irqhandler_duration_check()
181 struct irqaction *action; in __handle_irq_event_percpu() local
185 for_each_action_of_desc(desc, action) { in __handle_irq_event_percpu()
192 !(action->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT))) in __handle_irq_event_percpu()
195 trace_irq_handler_entry(irq, action); in __handle_irq_event_percpu()
200 res = action->handler(irq, action->dev_id); in __handle_irq_event_percpu()
201 irqhandler_duration_check(ts_start, irq, action); in __handle_irq_event_percpu()
203 res = action->handler(irq, action->dev_id); in __handle_irq_event_percpu()
206 trace_irq_handler_exit(irq, action, res); in __handle_irq_event_percpu()
209 irq, action->handler)) in __handle_irq_event_percpu()
218 if (unlikely(!action->thread_fn)) { in __handle_irq_event_percpu()
219 warn_no_thread(irq, action); in __handle_irq_event_percpu()
223 __irq_wake_thread(desc, action); in __handle_irq_event_percpu()