From: Roger Pau Monné Date: Wed, 27 Nov 2024 11:42:02 +0000 (+0100) Subject: x86/irq: fix calculation of max PV dom0 pIRQs X-Git-Tag: RELEASE-4.18.4~10 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=c79c85907fac31149119722fb32a79dba34e1b8f;p=xen.git x86/irq: fix calculation of max PV dom0 pIRQs The current calculation of PV dom0 pIRQs uses: n = min(fls(num_present_cpus()), dom0_max_vcpus()); The usage of fls() is wrong, as num_present_cpus() already returns the number of present CPUs, not the bitmap mask of CPUs. Fix by removing the usage of fls(). Fixes: 7e73a6e7f12a ('have architectures specify the number of PIRQs a hardware domain gets') Signed-off-by: Roger Pau Monné Acked-by: Andrew Cooper master commit: 5c56361c618e5d05855fc73118c4655f998b8272 master date: 2024-11-25 11:33:06 +0100 --- diff --git a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c index 836af62061..0450b5f784 100644 --- a/xen/arch/x86/io_apic.c +++ b/xen/arch/x86/io_apic.c @@ -2731,7 +2731,7 @@ void __init ioapic_init(void) unsigned int __hwdom_init arch_hwdom_irqs(const struct domain *d) { - unsigned int n = fls(num_present_cpus()); + unsigned int n = num_present_cpus(); /* Bounding by the domain pirq EOI bitmap capacity. */ const unsigned int max_irqs = min_t(unsigned int, nr_irqs, PAGE_SIZE * BITS_PER_BYTE);