Lines Matching full:vector
45 /* Allocate a new target vector */ in msi_set_affinity()
52 * to a different destination CPU and a different vector has to be in msi_set_affinity()
59 * - The new vector is the same as the old vector in msi_set_affinity()
60 * - The old vector is MANAGED_IRQ_SHUTDOWN_VECTOR (interrupt starts up) in msi_set_affinity()
65 cfg->vector == old_cfg.vector || in msi_set_affinity()
66 old_cfg.vector == MANAGED_IRQ_SHUTDOWN_VECTOR || in msi_set_affinity()
83 * Redirect the interrupt to the new vector on the current CPU in msi_set_affinity()
84 * first. This might cause a spurious interrupt on this vector if in msi_set_affinity()
88 * If the vector is in use then the installed device handler will in msi_set_affinity()
91 * anyway. If the vector is unused, then it is marked so it won't in msi_set_affinity()
92 * trigger the 'No irq handler for vector' warning in in msi_set_affinity()
95 * This requires to hold vector lock to prevent concurrent updates to in msi_set_affinity()
96 * the affected vector. in msi_set_affinity()
101 * Mark the new target vector on the local CPU if it is currently in msi_set_affinity()
108 * vector is cleaned up when the CPU comes online again. in msi_set_affinity()
110 if (IS_ERR_OR_NULL(this_cpu_read(vector_irq[cfg->vector]))) in msi_set_affinity()
111 this_cpu_write(vector_irq[cfg->vector], VECTOR_RETRIGGERED); in msi_set_affinity()
113 /* Redirect it to the new vector on the local CPU temporarily */ in msi_set_affinity()
114 old_cfg.vector = cfg->vector; in msi_set_affinity()
122 * vector/CPU. in msi_set_affinity()
124 * Drop vector lock before testing whether the temporary assignment in msi_set_affinity()
126 * because the retrigger function acquires vector lock again. in msi_set_affinity()
133 * of vector lock as the irq_desc::lock of this interrupt is still in msi_set_affinity()
135 * underlying vector store. It's just checking the local APIC's in msi_set_affinity()
138 if (lapic_vector_set_in_irr(cfg->vector)) in msi_set_affinity()