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

Commit 179475a3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'irq-core-for-linus' of...

Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, sparseirq: clean up Kconfig entry
  x86: turn CONFIG_SPARSE_IRQ off by default
  sparseirq: fix numa_migrate_irq_desc dependency and comments
  sparseirq: add kernel-doc notation for new member in irq_desc, -v2
  locking, irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP
  sparseirq, xen: make sure irq_desc is allocated for interrupts
  sparseirq: fix !SMP building, #2
  x86, sparseirq: move irq_desc according to smp_affinity, v7
  proc: enclose desc variable of show_stat() in CONFIG_SPARSE_IRQ
  sparse irqs: add irqnr.h to the user headers list
  sparse irqs: handle !GENIRQ platforms
  sparseirq: fix !SMP && !PCI_MSI && !HT_IRQ build
  sparseirq: fix Alpha build failure
  sparseirq: fix typo in !CONFIG_IO_APIC case
  x86, MSI: pass irq_cfg and irq_desc
  x86: MSI start irq numbering from nr_irqs_gsi
  x86: use NR_IRQS_LEGACY
  sparse irq_desc[] array: core kernel and x86 changes
  genirq: record IRQ_LEVEL in irq_desc[]
  irq.h: remove padding from irq_desc on 64bits
parents bb758e96 860cf889
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -247,6 +247,28 @@ config X86_HAS_BOOT_CPU_ID
	def_bool y
	depends on X86_VOYAGER

config SPARSE_IRQ
	bool "Support sparse irq numbering"
	depends on PCI_MSI || HT_IRQ
	help
	  This enables support for sparse irqs. This is useful for distro
	  kernels that want to define a high CONFIG_NR_CPUS value but still
	  want to have low kernel memory footprint on smaller machines.

	  ( Sparse IRQs can also be beneficial on NUMA boxes, as they spread
	    out the irq_desc[] array in a more NUMA-friendly way. )

	  If you don't know what to do here, say N.

config NUMA_MIGRATE_IRQ_DESC
	bool "Move irq desc when changing irq smp_affinity"
	depends on SPARSE_IRQ && NUMA
	default n
	help
	  This enables moving irq_desc to cpu/node that irq will use handled.

	  If you don't know what to do here, say N.

config X86_FIND_SMP_CONFIG
	def_bool y
	depends on X86_MPPARSE || X86_VOYAGER
+3 −6
Original line number Diff line number Diff line
@@ -198,17 +198,14 @@ extern void restore_IO_APIC_setup(void);
extern void reinit_intr_remapped_IO_APIC(int);
#endif

extern int probe_nr_irqs(void);
extern void probe_nr_irqs_gsi(void);

#else  /* !CONFIG_X86_IO_APIC */
#define io_apic_assign_pci_irqs 0
static const int timer_through_8259 = 0;
static inline void ioapic_init_mappings(void)	{ }

static inline int probe_nr_irqs(void)
{
	return NR_IRQS;
}
static inline void probe_nr_irqs_gsi(void)	{ }
#endif

#endif /* _ASM_X86_IO_APIC_H */
+11 −0
Original line number Diff line number Diff line
@@ -101,12 +101,23 @@
#define LAST_VM86_IRQ		15
#define invalid_vm86_irq(irq)	((irq) < 3 || (irq) > 15)

#define NR_IRQS_LEGACY		16

#if defined(CONFIG_X86_IO_APIC) && !defined(CONFIG_X86_VOYAGER)

#ifndef CONFIG_SPARSE_IRQ
# if NR_CPUS < MAX_IO_APICS
#  define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
# else
#  define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
# endif
#else
# if (8 * NR_CPUS) > (32 * MAX_IO_APICS)
#  define NR_IRQS (NR_VECTORS + (8 * NR_CPUS))
# else
#  define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
# endif
#endif

#elif defined(CONFIG_X86_VOYAGER)

+517 −244

File changed.

Preview size limit exceeded, changes collapsed.

+3 −0
Original line number Diff line number Diff line
@@ -118,6 +118,9 @@ int show_interrupts(struct seq_file *p, void *v)
	}

	desc = irq_to_desc(i);
	if (!desc)
		return 0;

	spin_lock_irqsave(&desc->lock, flags);
#ifndef CONFIG_SMP
	any_count = kstat_irqs(i);
Loading