Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 fixes from Peter Anvin: "Two very small changes: one fix for the vSMP Foundation platform, and one to help LLVM not choke on options it doesn't understand (although it probably should)" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/vsmp: Fix irq routing x86: LLVMLinux: Wrap -mno-80387 with cc-option
This commit is contained in:
@ -83,7 +83,9 @@ else
|
|||||||
KBUILD_CFLAGS += -m64
|
KBUILD_CFLAGS += -m64
|
||||||
|
|
||||||
# Don't autogenerate traditional x87, MMX or SSE instructions
|
# Don't autogenerate traditional x87, MMX or SSE instructions
|
||||||
KBUILD_CFLAGS += -mno-mmx -mno-sse -mno-80387 -mno-fp-ret-in-387
|
KBUILD_CFLAGS += -mno-mmx -mno-sse
|
||||||
|
KBUILD_CFLAGS += $(call cc-option,-mno-80387)
|
||||||
|
KBUILD_CFLAGS += $(call cc-option,-mno-fp-ret-in-387)
|
||||||
|
|
||||||
# Use -mpreferred-stack-boundary=3 if supported.
|
# Use -mpreferred-stack-boundary=3 if supported.
|
||||||
KBUILD_CFLAGS += $(call cc-option,-mpreferred-stack-boundary=3)
|
KBUILD_CFLAGS += $(call cc-option,-mpreferred-stack-boundary=3)
|
||||||
|
@ -26,6 +26,9 @@
|
|||||||
|
|
||||||
#define TOPOLOGY_REGISTER_OFFSET 0x10
|
#define TOPOLOGY_REGISTER_OFFSET 0x10
|
||||||
|
|
||||||
|
/* Flag below is initialized once during vSMP PCI initialization. */
|
||||||
|
static int irq_routing_comply = 1;
|
||||||
|
|
||||||
#if defined CONFIG_PCI && defined CONFIG_PARAVIRT
|
#if defined CONFIG_PCI && defined CONFIG_PARAVIRT
|
||||||
/*
|
/*
|
||||||
* Interrupt control on vSMPowered systems:
|
* Interrupt control on vSMPowered systems:
|
||||||
@ -101,6 +104,10 @@ static void __init set_vsmp_pv_ops(void)
|
|||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
if (cap & ctl & BIT(8)) {
|
if (cap & ctl & BIT(8)) {
|
||||||
ctl &= ~BIT(8);
|
ctl &= ~BIT(8);
|
||||||
|
|
||||||
|
/* Interrupt routing set to ignore */
|
||||||
|
irq_routing_comply = 0;
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
/* Don't let users change irq affinity via procfs */
|
/* Don't let users change irq affinity via procfs */
|
||||||
no_irq_affinity = 1;
|
no_irq_affinity = 1;
|
||||||
@ -218,6 +225,8 @@ static void vsmp_apic_post_init(void)
|
|||||||
{
|
{
|
||||||
/* need to update phys_pkg_id */
|
/* need to update phys_pkg_id */
|
||||||
apic->phys_pkg_id = apicid_phys_pkg_id;
|
apic->phys_pkg_id = apicid_phys_pkg_id;
|
||||||
|
|
||||||
|
if (!irq_routing_comply)
|
||||||
apic->vector_allocation_domain = fill_vector_allocation_domain;
|
apic->vector_allocation_domain = fill_vector_allocation_domain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user