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

Commit e085255e authored by Milton Miller's avatar Milton Miller Committed by Benjamin Herrenschmidt
Browse files

powerpc/xics: Cleanup xics_host_map and ipi



Since we already have a special case in map to set the ipi handler, use
the desired flow.

If we don't find an ics to handle the interrupt complain instead of
returning 0 without having set a chip or handler.

Signed-off-by: default avatarMilton Miller <miltonm@bga.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 71454272
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -135,9 +135,8 @@ static void xics_request_ipi(void)

	/*
	 * IPIs are marked IRQF_DISABLED as they must run with irqs
	 * disabled
	 * disabled, and PERCPU.  The handler was set in map.
	 */
	irq_set_handler(ipi, handle_percpu_irq);
	BUG_ON(request_irq(ipi, icp_ops->ipi_action,
			   IRQF_DISABLED|IRQF_PERCPU, "IPI", NULL));
}
@@ -341,15 +340,16 @@ static int xics_host_map(struct irq_host *h, unsigned int virq,
	/* Don't call into ICS for IPIs */
	if (hw == XICS_IPI) {
		irq_set_chip_and_handler(virq, &xics_ipi_chip,
					 handle_fasteoi_irq);
					 handle_percpu_irq);
		return 0;
	}

	/* Let the ICS setup the chip data */
	list_for_each_entry(ics, &ics_list, link)
		if (ics->map(ics, virq) == 0)
			break;
			return 0;

	return -EINVAL;
}

static int xics_host_xlate(struct irq_host *h, struct device_node *ct,