diff options
| author | Radim Krčmář <rkrcmar@redhat.com> | 2018-02-01 15:04:17 +0100 | 
|---|---|---|
| committer | Radim Krčmář <rkrcmar@redhat.com> | 2018-02-01 15:04:17 +0100 | 
| commit | 7bf14c28ee776be567855bd39ed8ff795ea19f55 (patch) | |
| tree | 6113748c673e85fccc2c56c050697789c00c6bc2 /arch/x86/kernel/mpparse.c | |
| parent | 87cedc6be55954c6efd6eca2e694132513f65a2a (diff) | |
| parent | 5fa4ec9cb2e6679e2f828033726f758ea314b9c5 (diff) | |
Merge branch 'x86/hyperv' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Topic branch for stable KVM clockource under Hyper-V.
Thanks to Christoffer Dall for resolving the ARM conflict.
Diffstat (limited to 'arch/x86/kernel/mpparse.c')
| -rw-r--r-- | arch/x86/kernel/mpparse.c | 23 | 
1 files changed, 14 insertions, 9 deletions
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 3a4b12809ab5..27d0a1712663 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c @@ -281,7 +281,7 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type)  	int ELCR_fallback = 0;  	intsrc.type = MP_INTSRC; -	intsrc.irqflag = 0;	/* conforming */ +	intsrc.irqflag = MP_IRQTRIG_DEFAULT | MP_IRQPOL_DEFAULT;  	intsrc.srcbus = 0;  	intsrc.dstapic = mpc_ioapic_id(0); @@ -324,10 +324,13 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type)  			 *  copy that information over to the MP table in the  			 *  irqflag field (level sensitive, active high polarity).  			 */ -			if (ELCR_trigger(i)) -				intsrc.irqflag = 13; -			else -				intsrc.irqflag = 0; +			if (ELCR_trigger(i)) { +				intsrc.irqflag = MP_IRQTRIG_LEVEL | +						 MP_IRQPOL_ACTIVE_HIGH; +			} else { +				intsrc.irqflag = MP_IRQTRIG_DEFAULT | +						 MP_IRQPOL_DEFAULT; +			}  		}  		intsrc.srcbusirq = i; @@ -419,7 +422,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)  	construct_ioapic_table(mpc_default_type);  	lintsrc.type = MP_LINTSRC; -	lintsrc.irqflag = 0;		/* conforming */ +	lintsrc.irqflag = MP_IRQTRIG_DEFAULT | MP_IRQPOL_DEFAULT;  	lintsrc.srcbusid = 0;  	lintsrc.srcbusirq = 0;  	lintsrc.destapic = MP_APIC_ALL; @@ -664,7 +667,7 @@ static int  __init get_MP_intsrc_index(struct mpc_intsrc *m)  	if (m->irqtype != mp_INT)  		return 0; -	if (m->irqflag != 0x0f) +	if (m->irqflag != (MP_IRQTRIG_LEVEL | MP_IRQPOL_ACTIVE_LOW))  		return 0;  	/* not legacy */ @@ -673,7 +676,8 @@ static int  __init get_MP_intsrc_index(struct mpc_intsrc *m)  		if (mp_irqs[i].irqtype != mp_INT)  			continue; -		if (mp_irqs[i].irqflag != 0x0f) +		if (mp_irqs[i].irqflag != (MP_IRQTRIG_LEVEL | +					   MP_IRQPOL_ACTIVE_LOW))  			continue;  		if (mp_irqs[i].srcbus != m->srcbus) @@ -784,7 +788,8 @@ static int  __init replace_intsrc_all(struct mpc_table *mpc,  		if (mp_irqs[i].irqtype != mp_INT)  			continue; -		if (mp_irqs[i].irqflag != 0x0f) +		if (mp_irqs[i].irqflag != (MP_IRQTRIG_LEVEL | +					   MP_IRQPOL_ACTIVE_LOW))  			continue;  		if (nr_m_spare > 0) {  | 
