[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 3/6] x86/setup: init nr_irqs after having detected x2APIC support
On 30.06.2022 10:54, Roger Pau Monne wrote: > Logic in ioapic_init() that sets the number of available vectors for > external interrupts requires knowing the x2APIC Destination Mode. As > such move the call after x2APIC BSP setup. "requires" reads as if this was the case already, which I don't think is true. The dependency likely appears with the next patch (didn't look there, yet). > --- a/xen/arch/x86/io_apic.c > +++ b/xen/arch/x86/io_apic.c > @@ -2653,16 +2653,6 @@ void __init ioapic_init(void) > max_gsi_irqs, nr_irqs_gsi); > nr_irqs_gsi = max_gsi_irqs; > } > - > - if ( nr_irqs == 0 ) > - nr_irqs = cpu_has_apic ? > - max(0U + num_present_cpus() * NR_DYNAMIC_VECTORS, > - 8 * nr_irqs_gsi) : > - nr_irqs_gsi; > - else if ( nr_irqs < 16 ) > - nr_irqs = 16; > - printk(XENLOG_INFO "IRQ limits: %u GSI, %u MSI/MSI-X\n", > - nr_irqs_gsi, nr_irqs - nr_irqs_gsi); > } > > unsigned int arch_hwdom_irqs(domid_t domid) > --- a/xen/arch/x86/irq.c > +++ b/xen/arch/x86/irq.c > @@ -420,6 +420,16 @@ int __init init_irq_data(void) > struct irq_desc *desc; > int irq, vector; > > + if ( nr_irqs == 0 ) > + nr_irqs = cpu_has_apic ? max(0U + num_present_cpus() * > + NR_DYNAMIC_VECTORS, 8 * nr_irqs_gsi) > + : nr_irqs_gsi; Splitting a function argument across lines and then putting the next argument on the same line is, well, confusing. May I suggest to either stick to the original line splitting or to go to if ( nr_irqs == 0 ) nr_irqs = cpu_has_apic ? max(0U + num_present_cpus() * NR_DYNAMIC_VECTORS, 8 * nr_irqs_gsi) : nr_irqs_gsi; ? Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |