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

Commit 30e4c9ad authored by Linus Torvalds's avatar Linus Torvalds
Browse files

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

Pull IRQ fixes from Ingo Molnar:
 "Mostly irqchip driver fixes, but also an irq core crash fix and a
  build fix"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  irqchip/mxs: Add missing set_handle_irq()
  irqchip/atmel-aic: Fix wrong bit operation for IRQ priority
  irqchip/gic-v3-its: Recompute the number of pages on page size change
  base: Export platform_msi_domain_[alloc,free]_irqs
  of: MSI: Simplify irqdomain lookup
  irqdomain: Allow domain lookup with DOMAIN_BUS_WIRED token
  irqchip: Fix dependencies for archs w/o HAS_IOMEM
  irqchip/s3c24xx: Mark init_eint as __maybe_unused
  genirq: Validate action before dereferencing it in handle_irq_event_percpu()
parents f25a96ea c5b63520
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -284,6 +284,7 @@ int platform_msi_domain_alloc_irqs(struct device *dev, unsigned int nvec,

	return err;
}
EXPORT_SYMBOL_GPL(platform_msi_domain_alloc_irqs);

/**
 * platform_msi_domain_free_irqs - Free MSI interrupts for @dev
@@ -301,6 +302,7 @@ void platform_msi_domain_free_irqs(struct device *dev)
	msi_domain_free_irqs(dev->msi_domain, dev);
	platform_msi_free_descs(dev, 0, MAX_DEV_MSIS);
}
EXPORT_SYMBOL_GPL(platform_msi_domain_free_irqs);

/**
 * platform_msi_get_host_data - Query the private data associated with
+1 −0
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ config TB10X_IRQC
config TS4800_IRQ
	tristate "TS-4800 IRQ controller"
	select IRQ_DOMAIN
	depends on HAS_IOMEM
	help
	  Support for the TS-4800 FPGA IRQ controller

+1 −1
Original line number Diff line number Diff line
@@ -86,7 +86,7 @@ int aic_common_set_priority(int priority, unsigned *val)
	    priority > AT91_AIC_IRQ_MAX_PRIORITY)
		return -EINVAL;

	*val &= AT91_AIC_PRIOR;
	*val &= ~AT91_AIC_PRIOR;
	*val |= priority;

	return 0;
+6 −2
Original line number Diff line number Diff line
@@ -875,6 +875,7 @@ static int its_alloc_tables(const char *node_name, struct its_node *its)
		}

		alloc_size = (1 << order) * PAGE_SIZE;
retry_alloc_baser:
		alloc_pages = (alloc_size / psz);
		if (alloc_pages > GITS_BASER_PAGES_MAX) {
			alloc_pages = GITS_BASER_PAGES_MAX;
@@ -938,13 +939,16 @@ static int its_alloc_tables(const char *node_name, struct its_node *its)
			 * size and retry. If we reach 4K, then
			 * something is horribly wrong...
			 */
			free_pages((unsigned long)base, order);
			its->tables[i] = NULL;

			switch (psz) {
			case SZ_16K:
				psz = SZ_4K;
				goto retry_baser;
				goto retry_alloc_baser;
			case SZ_64K:
				psz = SZ_16K;
				goto retry_baser;
				goto retry_alloc_baser;
			}
		}

+1 −0
Original line number Diff line number Diff line
@@ -241,6 +241,7 @@ static int __init asm9260_of_init(struct device_node *np,
		writel(0, icoll_priv.intr + i);

	icoll_add_domain(np, ASM9260_NUM_IRQS);
	set_handle_irq(icoll_handle_irq);

	return 0;
}
Loading