powerpc: Add virq_is_host to reduce virq_to_host usage
Some irq_host implementations are using virq_to_host to check if they are the irq_host for a virtual irq. To allow us to make space versus time tradeoffs, replace this usage with an assertive virq_is_host that confirms or denies the irq is associated with the given irq_host. Signed-off-by: Milton Miller <miltonm@bga.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
Родитель
9553361499
Коммит
3ee62d365b
|
@ -128,6 +128,7 @@ struct irq_host {
|
|||
struct irq_data;
|
||||
extern irq_hw_number_t irqd_to_hwirq(struct irq_data *d);
|
||||
extern irq_hw_number_t virq_to_hw(unsigned int virq);
|
||||
extern bool virq_is_host(unsigned int virq, struct irq_host *host);
|
||||
extern struct irq_host *virq_to_host(unsigned int virq);
|
||||
|
||||
/**
|
||||
|
|
|
@ -510,6 +510,12 @@ irq_hw_number_t virq_to_hw(unsigned int virq)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(virq_to_hw);
|
||||
|
||||
bool virq_is_host(unsigned int virq, struct irq_host *host)
|
||||
{
|
||||
return irq_map[virq].host == host;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(virq_is_host);
|
||||
|
||||
struct irq_host *virq_to_host(unsigned int virq)
|
||||
{
|
||||
return irq_map[virq].host;
|
||||
|
|
|
@ -213,7 +213,7 @@ void xics_migrate_irqs_away(void)
|
|||
/* We can't set affinity on ISA interrupts */
|
||||
if (virq < NUM_ISA_INTERRUPTS)
|
||||
continue;
|
||||
if (virq_to_host(virq) != xics_host)
|
||||
if (!virq_is_host(virq, xics_host))
|
||||
continue;
|
||||
irq = (unsigned int)virq_to_hw(virq);
|
||||
/* We need to get IPIs still. */
|
||||
|
|
Загрузка…
Ссылка в новой задаче