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

Commit 9dae41a2 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 Thomas Gleixner:
 "A pile of smallish changes all over the place:

   - Add a missing ISB in the GIC V1 driver

   - Remove an ACPI version check in the GIC V3 ITS driver

   - Add the missing irq_pm_shutdown function for BRCMSTB-L2 to avoid
     spurious wakeups

   - Remove the artifical limitation of ITS instances to the number of
     NUMA nodes which prevents utilizing the ITS hardware correctly

   - Prevent a infinite parsing loop in the GIC-V3 ITS/MSI code

   - Honour the force affinity argument in the GIC-V3 driver which is
     required to make perf work correctly

   - Correctly report allocation failures in GIC-V2/V3 to avoid using
     half allocated and initialized interrupts.

   - Fixup checks against nr_cpu_ids in the generic IPI code"

* 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  genirq/ipi: Fixup checks against nr_cpu_ids
  genirq: Restore trigger settings in irq_modify_status()
  MAINTAINERS: Remove Jason Cooper's irqchip git tree
  irqchip/gic-v3-its-platform-msi: Fix msi-parent parsing loop
  irqchip/gic-v3-its: Allow GIC ITS number more than MAX_NUMNODES
  irqchip: brcmstb-l2: Define an irq_pm_shutdown function
  irqchip/gic: Ensure we have an ISB between ack and ->handle_irq
  irqchip/gic-v3-its: Remove ACPICA version check for ACPI NUMA
  irqchip/gic-v3: Honor forced affinity setting
  irqchip/gic-v3: Report failures in gic_irq_domain_alloc
  irqchip/gic-v2: Report failures in gic_irq_domain_alloc
  irqchip/atmel-aic: Remove root argument from ->fixup() prototype
  irqchip/atmel-aic: Fix unbalanced refcount in aic_common_rtc_irq_fixup()
  irqchip/atmel-aic: Fix unbalanced of_node_put() in aic_common_irq_fixup()
parents e18a5ebc 8fbbe2d7
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -7110,7 +7110,6 @@ M: Marc Zyngier <marc.zyngier@arm.com>
L:	linux-kernel@vger.kernel.org
S:	Maintained
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
T:	git git://git.infradead.org/users/jcooper/linux.git irqchip/core
F:	Documentation/devicetree/bindings/interrupt-controller/
F:	drivers/irqchip/

+6 −7
Original line number Diff line number Diff line
@@ -137,14 +137,14 @@ static void __init aic_common_ext_irq_of_init(struct irq_domain *domain)
#define AT91_RTC_IMR           0x28
#define AT91_RTC_IRQ_MASK      0x1f

void __init aic_common_rtc_irq_fixup(struct device_node *root)
void __init aic_common_rtc_irq_fixup(void)
{
	struct device_node *np;
	void __iomem *regs;

	np = of_find_compatible_node(root, NULL, "atmel,at91rm9200-rtc");
	np = of_find_compatible_node(NULL, NULL, "atmel,at91rm9200-rtc");
	if (!np)
		np = of_find_compatible_node(root, NULL,
		np = of_find_compatible_node(NULL, NULL,
					     "atmel,at91sam9x5-rtc");

	if (!np)
@@ -165,7 +165,7 @@ void __init aic_common_rtc_irq_fixup(struct device_node *root)
#define AT91_RTT_ALMIEN		(1 << 16)		/* Alarm Interrupt Enable */
#define AT91_RTT_RTTINCIEN	(1 << 17)		/* Real Time Timer Increment Interrupt Enable */

void __init aic_common_rtt_irq_fixup(struct device_node *root)
void __init aic_common_rtt_irq_fixup(void)
{
	struct device_node *np;
	void __iomem *regs;
@@ -196,11 +196,10 @@ static void __init aic_common_irq_fixup(const struct of_device_id *matches)
		return;

	match = of_match_node(matches, root);
	of_node_put(root);

	if (match) {
		void (*fixup)(struct device_node *) = match->data;
		fixup(root);
		void (*fixup)(void) = match->data;
		fixup();
	}

	of_node_put(root);
+2 −2
Original line number Diff line number Diff line
@@ -33,8 +33,8 @@ struct irq_domain *__init aic_common_of_init(struct device_node *node,
					     const char *name, int nirqs,
					     const struct of_device_id *matches);

void __init aic_common_rtc_irq_fixup(struct device_node *root);
void __init aic_common_rtc_irq_fixup(void);

void __init aic_common_rtt_irq_fixup(struct device_node *root);
void __init aic_common_rtt_irq_fixup(void);

#endif /* __IRQ_ATMEL_AIC_COMMON_H */
+7 −7
Original line number Diff line number Diff line
@@ -209,20 +209,20 @@ static const struct irq_domain_ops aic_irq_ops = {
	.xlate	= aic_irq_domain_xlate,
};

static void __init at91rm9200_aic_irq_fixup(struct device_node *root)
static void __init at91rm9200_aic_irq_fixup(void)
{
	aic_common_rtc_irq_fixup(root);
	aic_common_rtc_irq_fixup();
}

static void __init at91sam9260_aic_irq_fixup(struct device_node *root)
static void __init at91sam9260_aic_irq_fixup(void)
{
	aic_common_rtt_irq_fixup(root);
	aic_common_rtt_irq_fixup();
}

static void __init at91sam9g45_aic_irq_fixup(struct device_node *root)
static void __init at91sam9g45_aic_irq_fixup(void)
{
	aic_common_rtc_irq_fixup(root);
	aic_common_rtt_irq_fixup(root);
	aic_common_rtc_irq_fixup();
	aic_common_rtt_irq_fixup();
}

static const struct of_device_id aic_irq_fixups[] __initconst = {
+2 −2
Original line number Diff line number Diff line
@@ -305,9 +305,9 @@ static const struct irq_domain_ops aic5_irq_ops = {
	.xlate	= aic5_irq_domain_xlate,
};

static void __init sama5d3_aic_irq_fixup(struct device_node *root)
static void __init sama5d3_aic_irq_fixup(void)
{
	aic_common_rtc_irq_fixup(root);
	aic_common_rtc_irq_fixup();
}

static const struct of_device_id aic5_irq_fixups[] __initconst = {
Loading