Lines Matching full:vector
44 * 'what should we do if we get a hw irq event on an illegal vector'.
50 pr_err("unexpected IRQ trap at vector %02x\n", irq); in ack_bad_irq()
259 static struct irq_desc *reevaluate_vector(int vector) in reevaluate_vector() argument
261 struct irq_desc *desc = __this_cpu_read(vector_irq[vector]); in reevaluate_vector()
267 pr_emerg_ratelimited("No irq handler for %d.%u\n", smp_processor_id(), vector); in reevaluate_vector()
269 __this_cpu_write(vector_irq[vector], VECTOR_UNUSED); in reevaluate_vector()
273 static __always_inline bool call_irq_handler(int vector, struct pt_regs *regs) in call_irq_handler() argument
275 struct irq_desc *desc = __this_cpu_read(vector_irq[vector]); in call_irq_handler()
284 * request_irq() setting up the vector: in call_irq_handler()
290 * per_cpu(vector_irq, CPU1)[vector] = VECTOR_SHUTDOWN; in call_irq_handler()
293 * d = this_cpu_read(vector_irq[vector]); in call_irq_handler()
295 * per_cpu(vector_irq, CPU1)[vector] = desc; in call_irq_handler()
298 * this_cpu_write(vector_irq[vector], VECTOR_UNUSED); in call_irq_handler()
300 * This requires that the same vector on the same target CPU is in call_irq_handler()
301 * handed out or that a spurious interrupt hits that CPU/vector. in call_irq_handler()
304 desc = reevaluate_vector(vector); in call_irq_handler()
325 if (unlikely(!call_irq_handler(vector, regs))) in DEFINE_IDTENTRY_IRQ()
332 /* Function pointer for generic interrupt vector handling */
484 unsigned int vector; in fixup_irqs() local
503 * We can walk the vector array of this cpu without holding in fixup_irqs()
507 for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) { in fixup_irqs()
508 if (IS_ERR_OR_NULL(__this_cpu_read(vector_irq[vector]))) in fixup_irqs()
511 if (is_vector_pending(vector)) { in fixup_irqs()
512 desc = __this_cpu_read(vector_irq[vector]); in fixup_irqs()
519 __this_cpu_write(vector_irq[vector], VECTOR_RETRIGGERED); in fixup_irqs()
523 if (__this_cpu_read(vector_irq[vector]) != VECTOR_RETRIGGERED) in fixup_irqs()
524 __this_cpu_write(vector_irq[vector], VECTOR_UNUSED); in fixup_irqs()