On Tue, 2020-10-13 at 12:46 +0200, Thomas Gleixner wrote: > And after becoming more awake, that wont work anyway because there is > more than one IR domain, so there is no way to return an error "You > forgot to register" obviously. > > But the APIC id (32768) valid check is also broken because IR can be > enabled even without X2APIC. Nope, it's perfectly OK to allow HPET and I/OAPIC to be parented in the x86_vector_domain in that case, regardless of IR. The *actual* criterion for x86_vector_select() returning zero to say "don't use me" is "could there be CPUs in the system which can't be reached through x86_vector_msi_compose_msg()?". It's not really about IR at all. The apic_id_valid(32768) check is checking precisely the right thing.