Lines Matching defs:vector
43 * 'what should we do if we get a hw irq event on an illegal vector'.
49 pr_err("unexpected IRQ trap at vector %02x\n", irq);
214 static struct irq_desc *reevaluate_vector(int vector)
216 struct irq_desc *desc = __this_cpu_read(vector_irq[vector]);
222 pr_emerg_ratelimited("No irq handler for %d.%u\n", smp_processor_id(), vector);
224 __this_cpu_write(vector_irq[vector], VECTOR_UNUSED);
228 static __always_inline bool call_irq_handler(int vector, struct pt_regs *regs)
230 struct irq_desc *desc = __this_cpu_read(vector_irq[vector]);
239 * request_irq() setting up the vector:
245 * per_cpu(vector_irq, CPU1)[vector] = VECTOR_SHUTDOWN;
248 * d = this_cpu_read(vector_irq[vector]);
250 * per_cpu(vector_irq, CPU1)[vector] = desc;
253 * this_cpu_write(vector_irq[vector], VECTOR_UNUSED);
255 * This requires that the same vector on the same target CPU is
256 * handed out or that a spurious interrupt hits that CPU/vector.
259 desc = reevaluate_vector(vector);
280 if (unlikely(!call_irq_handler(vector, regs)))
287 /* Function pointer for generic interrupt vector handling */
388 * assigned vector on the target CPU, which means that it was not
395 * posted vector.
469 unsigned int vector;
488 * We can walk the vector array of this cpu without holding
492 for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) {
493 if (IS_ERR_OR_NULL(__this_cpu_read(vector_irq[vector])))
496 if (is_vector_pending(vector)) {
497 desc = __this_cpu_read(vector_irq[vector]);
504 __this_cpu_write(vector_irq[vector], VECTOR_RETRIGGERED);
508 if (__this_cpu_read(vector_irq[vector]) != VECTOR_RETRIGGERED)
509 __this_cpu_write(vector_irq[vector], VECTOR_UNUSED);