Looks like the x86 apic set_affinity call explicitly checks for if
itâs activated in the managed case which makes sense given the code
Ben posted above:
/*
* Core code can call here for inactive interrupts. For inactive
* interrupts which use managed or reservation mode there is no
* point in going through the vector assignment right now as the
* activation will assign a vector which fits the destination
* cpumask. Let the core code store the destination mask and be
* done with it.
*/
if (!irqd_is_activated(irqd) &&
(apicd->is_managed || apicd->can_reserve))
My original patch should certain check activated and not disabled.
With that do you still have reservations Marc?