bool handle_irq(unsigned irq, struct pt_regs *regs) { struct irq_desc *desc; int overflow;
overflow = check_stack_overflow();
desc = irq_to_desc(irq); if (unlikely(!desc)) return false;
if (!execute_on_irq_stack(overflow, desc, irq)) {
if (unlikely(overflow)) print_stack_overflow();
desc->handle_irq(irq, desc);
} return true; }