mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 11:56:58 +00:00
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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user