mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-13 11:33:58 +00:00
hv: pirq: refactor vector allocation/free
This commit refactors vector allocation/free codes, two functions are
defined to help alloc/free vectors for an irq:
- uint32_t alloc_irq_vector(uint32_t irq)
- alloc a free vector (0x20 ~ 0xDF), and bind it to irq, for legacy irqs
and static mapped irqs, vector has been allocated and bind, so just
check the mapping correctness;
- return: valid vector on success, VECTOR_INVALID on failure.
- void free_irq_vector(uint32_t irq)
- free vector allocated via alloc_irq_vector(), for legacy irqs and static
mapped irqs, nothing need to do.
Signed-off-by: Yan, Like <like.yan@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
This commit is contained in:
@@ -371,8 +371,8 @@ void setup_ioapic_irq(void)
|
||||
* for legacy irq, reserved vector and never free
|
||||
*/
|
||||
if (gsi < NR_LEGACY_IRQ) {
|
||||
vr = irq_desc_alloc_vector(gsi);
|
||||
if (vr > NR_MAX_VECTOR) {
|
||||
vr = alloc_irq_vector(gsi);
|
||||
if (vr == VECTOR_INVALID) {
|
||||
pr_err("failed to alloc VR");
|
||||
gsi++;
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user