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

Commit 0845e11c authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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
parents e7e6d2a4 39025ba3
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -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)
+10 −1
Original line number Original line Diff line number Diff line
@@ -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;
}
}