Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9df08f10 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Ingo Molnar
Browse files

x86: apic - lapic_setup_esr does not handle esr_disable - fix it



lapic_setup_esr doesn't handle esr_disable inquire.
The error brought in during unification process.
Fix it.

Signed-off-by: default avatarCyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent c87695ea
Loading
Loading
Loading
Loading
+33 −30
Original line number Diff line number Diff line
@@ -1081,8 +1081,13 @@ void __init init_bsp_APIC(void)

static void __cpuinit lapic_setup_esr(void)
{
	unsigned long oldvalue, value, maxlvt;
	if (lapic_is_integrated() && !esr_disable) {
	unsigned int oldvalue, value, maxlvt;

	if (!lapic_is_integrated()) {
		printk(KERN_INFO "No ESR for 82489DX.\n");
		return;
	}

	if (esr_disable) {
		/*
		 * Something untraceable is creating bad interrupts on
@@ -1093,7 +1098,7 @@ static void __cpuinit lapic_setup_esr(void)
		printk(KERN_INFO "Leaving ESR disabled.\n");
		return;
	}
		/* !82489DX */

	maxlvt = lapic_get_maxlvt();
	if (maxlvt > 3)		/* Due to the Pentium erratum 3AP. */
		apic_write(APIC_ESR, 0);
@@ -1102,6 +1107,7 @@ static void __cpuinit lapic_setup_esr(void)
	/* enables sending errors */
	value = ERROR_APIC_VECTOR;
	apic_write(APIC_LVTERR, value);

	/*
	 * spec says clear errors after enabling vector.
	 */
@@ -1110,11 +1116,8 @@ static void __cpuinit lapic_setup_esr(void)
	value = apic_read(APIC_ESR);
	if (value != oldvalue)
		apic_printk(APIC_VERBOSE, "ESR value before enabling "
				"vector: 0x%08lx  after: 0x%08lx\n",
			"vector: 0x%08x  after: 0x%08x\n",
			oldvalue, value);
	} else {
		printk(KERN_INFO "No ESR for 82489DX.\n");
	}
}