Commit 39c89dff authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

x86/apic: Invoke perf_events_lapic_init() after enabling APIC



If the APIC is soft disabled then unmasking an LVT entry does not work and
the write is ignored. perf_events_lapic_init() tries to do so.

Move the invocation after the point where the APIC has been enabled.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20190722105218.962517234@linutronix.de
parent 2591bc4e
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -1517,7 +1517,6 @@ static void setup_local_APIC(void)
	int logical_apicid, ldr_apicid;
#endif


	if (disable_apic) {
		disable_ioapic_support();
		return;
@@ -1532,8 +1531,6 @@ static void setup_local_APIC(void)
		apic_write(APIC_ESR, 0);
	}
#endif
	perf_events_lapic_init();

	/*
	 * Double-check whether this APIC is really registered.
	 * This is meaningless in clustered apic mode, so we skip it.
@@ -1617,6 +1614,8 @@ static void setup_local_APIC(void)
	value |= SPURIOUS_APIC_VECTOR;
	apic_write(APIC_SPIV, value);

	perf_events_lapic_init();

	/*
	 * Set up LVT0, LVT1:
	 *