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

Commit 9301975e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'genirq-v28-for-linus' of...

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

This merges branches irq/genirq, irq/sparseirq-v4, timers/hpet-percpu
and x86/uv.

The sparseirq branch is just preliminary groundwork: no sparse IRQs are
actually implemented by this tree anymore - just the new APIs are added
while keeping the old way intact as well (the new APIs map 1:1 to
irq_desc[]).  The 'real' sparse IRQ support will then be a relatively
small patch ontop of this - with a v2.6.29 merge target.

* 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (178 commits)
  genirq: improve include files
  intr_remapping: fix typo
  io_apic: make irq_mis_count available on 64-bit too
  genirq: fix name space collisions of nr_irqs in arch/*
  genirq: fix name space collision of nr_irqs in autoprobe.c
  genirq: use iterators for irq_desc loops
  proc: fixup irq iterator
  genirq: add reverse iterator for irq_desc
  x86: move ack_bad_irq() to irq.c
  x86: unify show_interrupts() and proc helpers
  x86: cleanup show_interrupts
  genirq: cleanup the sparseirq modifications
  genirq: remove artifacts from sparseirq removal
  genirq: revert dynarray
  genirq: remove irq_to_desc_alloc
  genirq: remove sparse irq code
  genirq: use inline function for irq_to_desc
  genirq: consolidate nr_irqs and for_each_irq_desc()
  x86: remove sparse irq from Kconfig
  genirq: define nr_irqs for architectures with GENERIC_HARDIRQS=n
  ...
parents 7110879c dd3a1db9
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -47,7 +47,7 @@ typedef struct irq_swizzle_struct


static irq_swizzle_t *sable_lynx_irq_swizzle;
static irq_swizzle_t *sable_lynx_irq_swizzle;


static void sable_lynx_init_irq(int nr_irqs);
static void sable_lynx_init_irq(int nr_of_irqs);


#if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_SABLE)
#if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_SABLE)


@@ -530,11 +530,11 @@ sable_lynx_srm_device_interrupt(unsigned long vector)
}
}


static void __init
static void __init
sable_lynx_init_irq(int nr_irqs)
sable_lynx_init_irq(int nr_of_irqs)
{
{
	long i;
	long i;


	for (i = 0; i < nr_irqs; ++i) {
	for (i = 0; i < nr_of_irqs; ++i) {
		irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
		irq_desc[i].status = IRQ_DISABLED | IRQ_LEVEL;
		irq_desc[i].chip = &sable_lynx_irq_type;
		irq_desc[i].chip = &sable_lynx_irq_type;
	}
	}
+2 −2
Original line number Original line Diff line number Diff line
@@ -143,7 +143,7 @@ static struct irq_chip ixdp2x00_cpld_irq_chip = {
	.unmask	= ixdp2x00_irq_unmask
	.unmask	= ixdp2x00_irq_unmask
};
};


void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_irqs)
void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigned long *mask_reg, unsigned long nr_of_irqs)
{
{
	unsigned int irq;
	unsigned int irq;


@@ -154,7 +154,7 @@ void __init ixdp2x00_init_irq(volatile unsigned long *stat_reg, volatile unsigne


	board_irq_stat = stat_reg;
	board_irq_stat = stat_reg;
	board_irq_mask = mask_reg;
	board_irq_mask = mask_reg;
	board_irq_count = nr_irqs;
	board_irq_count = nr_of_irqs;


	*board_irq_mask = 0xffffffff;
	*board_irq_mask = 0xffffffff;


+4 −4
Original line number Original line Diff line number Diff line
@@ -119,7 +119,7 @@ static void __init omap_irq_bank_init_one(struct omap_irq_bank *bank)


void __init omap_init_irq(void)
void __init omap_init_irq(void)
{
{
	unsigned long nr_irqs = 0;
	unsigned long nr_of_irqs = 0;
	unsigned int nr_banks = 0;
	unsigned int nr_banks = 0;
	int i;
	int i;


@@ -133,14 +133,14 @@ void __init omap_init_irq(void)


		omap_irq_bank_init_one(bank);
		omap_irq_bank_init_one(bank);


		nr_irqs += bank->nr_irqs;
		nr_of_irqs += bank->nr_irqs;
		nr_banks++;
		nr_banks++;
	}
	}


	printk(KERN_INFO "Total of %ld interrupts on %d active controller%s\n",
	printk(KERN_INFO "Total of %ld interrupts on %d active controller%s\n",
	       nr_irqs, nr_banks, nr_banks > 1 ? "s" : "");
	       nr_of_irqs, nr_banks, nr_banks > 1 ? "s" : "");


	for (i = 0; i < nr_irqs; i++) {
	for (i = 0; i < nr_of_irqs; i++) {
		set_irq_chip(i, &omap_irq_chip);
		set_irq_chip(i, &omap_irq_chip);
		set_irq_handler(i, handle_level_irq);
		set_irq_handler(i, handle_level_irq);
		set_irq_flags(i, IRQF_VALID);
		set_irq_flags(i, IRQF_VALID);
+4 −4
Original line number Original line Diff line number Diff line
@@ -191,7 +191,7 @@ static int __init eic_probe(struct platform_device *pdev)
	struct eic *eic;
	struct eic *eic;
	struct resource *regs;
	struct resource *regs;
	unsigned int i;
	unsigned int i;
	unsigned int nr_irqs;
	unsigned int nr_of_irqs;
	unsigned int int_irq;
	unsigned int int_irq;
	int ret;
	int ret;
	u32 pattern;
	u32 pattern;
@@ -224,7 +224,7 @@ static int __init eic_probe(struct platform_device *pdev)
	eic_writel(eic, IDR, ~0UL);
	eic_writel(eic, IDR, ~0UL);
	eic_writel(eic, MODE, ~0UL);
	eic_writel(eic, MODE, ~0UL);
	pattern = eic_readl(eic, MODE);
	pattern = eic_readl(eic, MODE);
	nr_irqs = fls(pattern);
	nr_of_irqs = fls(pattern);


	/* Trigger on low level unless overridden by driver */
	/* Trigger on low level unless overridden by driver */
	eic_writel(eic, EDGE, 0UL);
	eic_writel(eic, EDGE, 0UL);
@@ -232,7 +232,7 @@ static int __init eic_probe(struct platform_device *pdev)


	eic->chip = &eic_chip;
	eic->chip = &eic_chip;


	for (i = 0; i < nr_irqs; i++) {
	for (i = 0; i < nr_of_irqs; i++) {
		set_irq_chip_and_handler(eic->first_irq + i, &eic_chip,
		set_irq_chip_and_handler(eic->first_irq + i, &eic_chip,
					 handle_level_irq);
					 handle_level_irq);
		set_irq_chip_data(eic->first_irq + i, eic);
		set_irq_chip_data(eic->first_irq + i, eic);
@@ -256,7 +256,7 @@ static int __init eic_probe(struct platform_device *pdev)
		 eic->regs, int_irq);
		 eic->regs, int_irq);
	dev_info(&pdev->dev,
	dev_info(&pdev->dev,
		 "Handling %u external IRQs, starting with IRQ %u\n",
		 "Handling %u external IRQs, starting with IRQ %u\n",
		 nr_irqs, eic->first_irq);
		 nr_of_irqs, eic->first_irq);


	return 0;
	return 0;


+0 −8
Original line number Original line Diff line number Diff line
@@ -1242,14 +1242,6 @@ config EFI
  	resultant kernel should continue to boot on existing non-EFI
  	resultant kernel should continue to boot on existing non-EFI
  	platforms.
  	platforms.


config IRQBALANCE
	def_bool y
	prompt "Enable kernel irq balancing"
	depends on X86_32 && SMP && X86_IO_APIC
	help
	  The default yes will allow the kernel to do irq load balancing.
	  Saying no will keep the kernel from doing irq load balancing.

config SECCOMP
config SECCOMP
	def_bool y
	def_bool y
	prompt "Enable seccomp to safely compute untrusted bytecode"
	prompt "Enable seccomp to safely compute untrusted bytecode"
Loading