Commit de2f75d5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'x86-apic-2025-12-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 apic updates from Ingo Molnar:

 - x86/apic: Fix the frequency in apic=verbose log output (Julian
   Stecklina)

 - Simplify mp_irqdomain_alloc() slightly (Christophe JAILLET)

* tag 'x86-apic-2025-12-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/apic: Fix frequency in apic=verbose log output
  x86/ioapic: Simplify mp_irqdomain_alloc() slightly
parents 6d2c10e8 ed4f9638
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ static struct resource lapic_resource = {
	.flags = IORESOURCE_MEM | IORESOURCE_BUSY,
};

/* Measured in ticks per HZ. */
unsigned int lapic_timer_period = 0;

static void apic_pm_activate(void);
@@ -792,6 +793,7 @@ static int __init calibrate_APIC_clock(void)
{
	struct clock_event_device *levt = this_cpu_ptr(&lapic_events);
	u64 tsc_perj = 0, tsc_start = 0;
	long delta_tsc_khz, bus_khz;
	unsigned long jif_start;
	unsigned long deltaj;
	long delta, deltatsc;
@@ -894,14 +896,15 @@ static int __init calibrate_APIC_clock(void)
	apic_pr_verbose("..... calibration result: %u\n", lapic_timer_period);

	if (boot_cpu_has(X86_FEATURE_TSC)) {
		apic_pr_verbose("..... CPU clock speed is %ld.%04ld MHz.\n",
				(deltatsc / LAPIC_CAL_LOOPS) / (1000000 / HZ),
				(deltatsc / LAPIC_CAL_LOOPS) % (1000000 / HZ));
		delta_tsc_khz = (deltatsc * HZ) / (1000 * LAPIC_CAL_LOOPS);

		apic_pr_verbose("..... CPU clock speed is %ld.%03ld MHz.\n",
				delta_tsc_khz / 1000, delta_tsc_khz % 1000);
	}

	apic_pr_verbose("..... host bus clock speed is %u.%04u MHz.\n",
			lapic_timer_period / (1000000 / HZ),
			lapic_timer_period % (1000000 / HZ));
	bus_khz = (long)lapic_timer_period * HZ / 1000;
	apic_pr_verbose("..... host bus clock speed is %ld.%03ld MHz.\n",
			bus_khz / 1000, bus_khz % 1000);

	/*
	 * Do a sanity check on the APIC calibration result
+1 −1
Original line number Diff line number Diff line
@@ -2864,7 +2864,7 @@ int mp_irqdomain_alloc(struct irq_domain *domain, unsigned int virq,

	ioapic = mp_irqdomain_ioapic_idx(domain);
	pin = info->ioapic.pin;
	if (irq_find_mapping(domain, (irq_hw_number_t)pin) > 0)
	if (irq_resolve_mapping(domain, (irq_hw_number_t)pin))
		return -EEXIST;

	data = kzalloc(sizeof(*data), GFP_KERNEL);