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

Commit 0791e98d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

* 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86/irq: Standardize on CONFIG_SPARSE_IRQ=y
  x86, ioapic: Clean up ioapic/apic_id usage
  x86, ioapic: Factor out print_IO_APIC() to only print one io apic
  x86, ioapic: Print out irte with right ioapic index
  x86, ioapic: Split up setup_ioapic_entry()
  x86, ioapic: Pass struct irq_attr * to setup_ioapic_irq()
  apic, i386/bigsmp: Fix false warnings regarding logical APIC ID mismatches
parents edb34a4d 141d55e6
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ config X86
	select HAVE_TEXT_POKE_SMP
	select HAVE_GENERIC_HARDIRQS
	select HAVE_SPARSE_IRQ
	select SPARSE_IRQ
	select GENERIC_FIND_FIRST_BIT
	select GENERIC_IRQ_PROBE
	select GENERIC_PENDING_IRQ if SMP
+1 −1
Original line number Diff line number Diff line
@@ -495,7 +495,7 @@ static inline void default_wait_for_init_deassert(atomic_t *deassert)
	return;
}

extern struct apic *generic_bigsmp_probe(void);
extern void generic_bigsmp_probe(void);


#ifdef CONFIG_X86_LOCAL_APIC
+2 −10
Original line number Diff line number Diff line
@@ -160,19 +160,11 @@ static inline int invalid_vm86_irq(int irq)
#define IO_APIC_VECTOR_LIMIT		( 32 * MAX_IO_APICS )

#ifdef CONFIG_X86_IO_APIC
# ifdef CONFIG_SPARSE_IRQ
# define CPU_VECTOR_LIMIT		(64 * NR_CPUS)
# define NR_IRQS					\
	(CPU_VECTOR_LIMIT > IO_APIC_VECTOR_LIMIT ?	\
		(NR_VECTORS + CPU_VECTOR_LIMIT)  :	\
		(NR_VECTORS + IO_APIC_VECTOR_LIMIT))
# else
#  define CPU_VECTOR_LIMIT		(32 * NR_CPUS)
#  define NR_IRQS					\
	(CPU_VECTOR_LIMIT < IO_APIC_VECTOR_LIMIT ?	\
		(NR_VECTORS + CPU_VECTOR_LIMIT)  :	\
		(NR_VECTORS + IO_APIC_VECTOR_LIMIT))
# endif
#else /* !CONFIG_X86_IO_APIC: */
# define NR_IRQS			NR_IRQS_LEGACY
#endif
+16 −4
Original line number Diff line number Diff line
@@ -255,12 +255,24 @@ static struct apic apic_bigsmp = {
	.x86_32_early_logical_apicid	= bigsmp_early_logical_apicid,
};

struct apic * __init generic_bigsmp_probe(void)
void __init generic_bigsmp_probe(void)
{
	if (probe_bigsmp())
		return &apic_bigsmp;
	unsigned int cpu;

	return NULL;
	if (!probe_bigsmp())
		return;

	apic = &apic_bigsmp;

	for_each_possible_cpu(cpu) {
		if (early_per_cpu(x86_cpu_to_logical_apicid,
				  cpu) == BAD_APICID)
			continue;
		early_per_cpu(x86_cpu_to_logical_apicid, cpu) =
			bigsmp_early_logical_apicid(cpu);
	}

	pr_info("Overriding APIC driver with %s\n", apic_bigsmp.name);
}

apic_driver(apic_bigsmp);
+197 −197

File changed.

Preview size limit exceeded, changes collapsed.

Loading